美文网首页
ES检索优化实践篇

ES检索优化实践篇

作者: 郴萝卜 | 来源:发表于2020-03-05 15:23 被阅读0次

前情概要:

我们搭建了一个涵盖全国企业信息的企业库,涵盖4000w的工商注册企业以及8000w的个体工商信息。用户使用此库的主要场景是检索与用户业务相关的企业,以寻找销售机会。

问题来了

怎样帮用户更好地查找到心仪的企业?

首先,本着寻找销售机会的目标,分析用户检索的常见场景:

产品现状

对产品而言,特定企业查询,是企业库检索的面子工程,有心里预期的检索结果过差,会造成极差的第一印象;同类企业查询,是我们项目的目标,能够查找符合用户需求的一类企业,才能更好地为用户提供价值

惭愧而言,现状距离上述两种目标都相差甚远

优化方案

当前企业库支持公司名称、法人、地址和经营范围四个内容的检索,但是基于ES现有的评分结果,综合排序效果很差。结合用户使用场景,我们拟订以下优化方案:

1.    补充检索内容

巧妇难为无米炊,缺少数据的情况下查询效果一定差。补充企业产品、品牌词等内容,满足用户查找线索的常用场景。

2.    补充检索词库

ES检索提供通用词库,但是我们场景下需要识别的企业信息与通用词有一定差异,只有词库够强大,分词能力才能更强。

3.    调整检索评分

检索评分直接影响检索排序,而排序是给用户的第一观感。

在实操过程中,我们是3,1,2的顺序来进行的优化,以下也将按实操过程来给大家展示优化效果。

优化1:调整检索评分

在检索评分上,我们做了两方面的调整:

一方面,针对不同检索内容项,设置不同权重,将公司名称设置最高权重,法人其次,地址和经营范围权重最低。权重调整的效果如下:

调整前

调整后

检索词【开店】,调整前,所有检索内容权重相同,由于法人姓名长度较短,检索词若命中法人姓名,得分较高,因此大部分命中法人的信息会排在前面。在调整后,我们增加了公司名称的权重,减少了由于法人字段过短造成的高分影响,排在前位的较多是公司名称命中的数据。

上述检索虽调整了检索范围的权重,但是从检索效果来看并不理想。主要原因在于公司名称中个体工商一般名称较短,命中检索词的时候会获得更高的评分,导致排序靠前的数据大部分为个体工商户。

我们又做了第二步调整,增加「企业」类型的检索评分(_score*2),同时增加注册资本大于100w的公司得分(_score*2)。效果如下:

经过两轮调整,目前的检索效果基本符合预期。

优化2:补充检索内容

在销售机会查找的业务场景下,用户经常使用产品词、品牌词等进行搜索。为此,我们首先引入了商标数据,补充检索内容。

引入数据量400w+

引入前效果:

引入后:

优化3:补充检索词库

为了让ES更加准确的识别用户输入的信息,我们拟订从公司名称中拆解出一些分词,补充到检索词库中。

针对公司名称的拆词,使用现有策略模型,公司名称拆词的效果如下:

拟订将【K】【B】类输入到ES词库中。

效果,未完待续。。。。

其他优化尝试

(1)    [endif]入库分词和检索词使用不同粒度:入库分词存储时,公司名称、法人、地址采用细粒度分词,主营业务采用粗粒度分词。检索时采用粗粒度分词。

避免拆词过细,减少了match的总条数

后续方向

(1)    ES检索词库补充

(2)   增加更多检索内容,品牌、产品等

相关文章

网友评论

      本文标题:ES检索优化实践篇

      本文链接:https://www.haomeiwen.com/subject/ickafhtx.html