首页 飞机号购买自助下单官网内容详情

CRM系统的全文搜索:宏天基于Elasticsearch的实践

2026-04-04 3 飞机号购买网站

存在于CRM系统里,销售人员平均每日需发起超出30次的客户信息检索,每一回卡顿都会对跟单效率造成直接的影响。宏天科技凭着基于Elasticsearch的全文搜索改造,把千万级的数据查询时间由3秒压缩到500毫秒之内,本文对其索引设计、查询优化以及智能补全的落地经验进行详细拆解。

分索引设计破解数据膨胀难题

传统那种单一索引去存储全部CRM数据的做法,会致使检索性能伴随着数据量增大而飞速下降。宏天依据业务模块拆分成customer、follow_record、contract、product这四个独立索引,每个索引仅仅存储本模块的核心字段。比如说customer索引只留存客户ID、名称、行业、联系方式等基础信息,而跟进记录是单独存储在follow_record索引里,借助客户ID来进行跨索引关联。

此种分索引架构在单索引数据膨胀后,规避了全表扫描这类问题。与此同时,宏天引进了索引生命周期管理,也就是ILM,把数据划分成Hot、Warm、Cold这三个阶段。Hot阶段放置近3个月高频访问的客户数据,运用SSD硬盘来存储;Cold阶段放置1年以上的归档数据,转移至HDD硬盘。这样的分级存储策略让热数据检索速度提高了3倍,并且降低了60%的存储成本。

字段映射优化提升检索精度

在CRM检索场景里,常常会有“行业精确匹配与关键词模糊搜索”这种组合性检索的需求。宏天依据不同字段所具备的特点,采用了差异化的类型配置方式:对于客户ID、合同编号、行业分类等那些需要精确匹配的字段,将其设置成keyword类型,以此来防止因分词而致使的匹配误差;然而对于客户名称、跟进内容等那些需要进行全文搜索的字段,则使用text类型,并且配置IK分词器以支持中文分词。

于具体查询实现方面,宏天舍弃了低效的multi_match全字段查询,他们运用bool查询来组合多个条件,针对keyword类型字段采用term精确匹配,针对text类型字段运用match短语匹配,并且借助boost参数调配字段权重,譬如在搜索“宏天科技”之际,将客户名称字段权重设定为3,而备注字段权重仅仅为1,以此保证最具相关性的结果排列在首位。

PUT /customer
{
  "settings": {
    "number_of_shards": 4,
    "number_of_replicas": 1,
    "analysis": {
      "analyzer": {
        "ik_crm_analyzer": {
          "type": "custom",
          "tokenizer": "ik_max_word",
          "filter": ["lowercase"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "customer_id": { "type": "keyword" },
      "customer_name": { 
        "type": "text", 
        "analyzer": "ik_crm_analyzer",
        "fields": { "keyword": { "type": "keyword" } }
      },
      "industry": { "type": "keyword" },
      "contact_phone": { "type": "keyword", "index": false },
      "create_time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss" },
      "customer_address": { "type": "text", "analyzer": "ik_crm_analyzer" }
    }
  }
}

缓存与集群配置加速响应

千万级数据检索状态下,每次重复展开查询之际都重新进行索引扫描,这必定会造成极大的性能方面的浪费。宏天开启启用了Elasticsearch的查询缓存以及字段数据缓存,把高频出现的查询语句及其相应结果缓存在储存数据的内存当中。同一销售人员多次查询搜索“互联网行业近3个月新增客户”这个内容时,第二次以及在这之后的查询能够直接从缓存里读取数据,响应时间被缩短到50毫秒以内。

针对集群配置,宏天依据业务流量特点开展了精细化调整,将JVM堆内存设定为系统总内存的50%,并且规定其不超过32GB,以此避免因垃圾回收频繁致使检索出现卡顿现象,同时对刷新间隔参数进行了优化,在Hot阶段,将索引的refresh_interval设置成1秒,从而保证新增客户数据能够迅速被检索到,而在Cold阶段,把索引的刷新间隔延长至30秒,进而减少不必要的性能开销。

智能补全降低操作门槛

GET /customer/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "query": "宏天",
            "fields": ["customer_name^3", "customer_address^1"],
            "type": "best_fields",
            "operator": "or"
          }
        }
      ],
      "filter": [
        { "term": { "industry": "互联网" } },
        { "range": { "create_time": { "gte": "2025-01-01" } } }
      ]
    }
  },
  "size": 20,
  "from": 0
}

进行传统 CRM 搜索时,需要用户得以无一缺失地完整输入关键词,然而如此一来操作成本是较高的并且极易出现差错。宏天构建起了智能补全系统,此系统所依据的是建立于 Elasticsearch 的 Completion Suggester 功能之上达成的。该系统对 FST 有限状态转换器数据结构加以运用,预先把客户名称、合同名称、产品名称等那些高频检索词存储成为候选词库。当销售人员输入“宏”这个字的时候,系统能够在 50 毫秒的时间内返回“宏天科技”“宏天软件”等完整的候选词。

输入错误致使检索无结果这一痛点,由拼写纠错功能所解决。比如说,用户输入“宏天科计”,系统会自行识别,将其纠正成“宏天科技”,并且展示纠正提示。宏天借助分析历史检索日志,搜集了超10万条常见错误输入模式,构建了纠错规则库。此功能上线后,因拼写错误引发的零结果检索率降低了75%。

性能提升与业务价值闭环

经上述那般的优化之后,宏天CRM系统的全文搜索性能达成了质的飞跃。处于千万级别的客户数据规模情形下,复杂多字段联合检索的平均响应时间稳稳地维持在500毫秒以内,相较于传统数据库的3秒而言提升了6倍。检索成功率从先前的92%提高到了99.8%,漏查以及误查率降低了80%以上。

以业务价值的视角来看,销售人员每日的平均检索次数,在改造之前是三十次,而如今增加到了六十次,这是为何呢?原因在于,当每次检索所耗费的时间被缩短之后,他们进而更乐意频繁去运用搜索功能。智能补全功能发挥作用,致使每次检索的输入时间,由平均八秒下降至三秒,整体的检索效率得以提升,提升幅度为百分之六十。客户跟进记录的完整率,同样从百分之七十五提高到了百分之九十二,这就由此间接地推动成交率增长了百分之十五。

PUT /customer/_mapping
{
  "properties": {
    "customer_name_suggest": {
      "type": "completion",
      "analyzer": "ik_max_word",
      "preserve_separators": false,
      "preserve_position_increments": false,
      "max_input_length": 50
    }
  }
}
// 智能补全查询
GET /customer/_search
{
  "suggest": {
    "customer_name_suggest": {
      "prefix": "宏天",
      "completion": {
        "field": "customer_name_suggest",
        "size": 10,
        "skip_duplicates": true
      }
    }
  }
}

持续演进的方向与建议

宏天打算于未来版本里引入更具智能性的排序算法,他们会依据用户行为日志,去统计每个客户被点击查看的频率,把高频查看的客户在搜索结果里提升权重,同时计划接入业务系统的商机阶段数据,让即将成交的客户在搜索结果里优先呈现,进而进一步贴合销售人员的实际需求。

对于那些计划运用Elasticsearch来对CRM搜索予以优化的团队,宏天给出建议,要从索引设计的阶段开始就去考量生命周期管理,防止在后期数据出现膨胀的时候才开展重构工作。查询语句应当避免运用以通配符作为开头的模糊匹配方式,转而采用前缀查询去结合分词器。智能补全所涉及的候选词库需要定期进行更新,把低频词汇给剔除掉,并且加入新增的客户名称,从而保持建议结果在时效性以及准确性方面的表现。

销售团队的跟单效率,是否因你那搜索慢的CRM系统受到了影响呢?在评论区发布你碰到过的检索痛点,很是欢迎哦,点赞到100,我们会接着分享Elasticsearch集群监控的实战经验。

CRM系统的全文搜索:宏天基于Elasticsearch的实践

相关标签: # CRM系统 # 全文搜索 # Elasticsearch # 索引设计 # 智能补全