相关文章推荐
爽快的绿豆  ·  一平浪镇杞栽“三一三”民俗文化旅游节掀起“五 ...·  7 月前    · 
打盹的领带  ·  广东省人民政府关于印发广东省促进天然气利用实 ...·  1 年前    · 
爱喝酒的日光灯  ·  只吃水煮蔬菜,我一个月减20斤,简单有效,人 ...·  1 年前    · 
暴走的长颈鹿  ·  威尔胜耐磨网球鞋价格报价行情 - 京东·  2 年前    · 
风流倜傥的松鼠  ·  《人鱼缚》跌宕起伏悬疑丛生 ...·  2 年前    · 
Code  ›  如何合理的控制solr查询的命中的数量和质量?开发者社区
solr
https://cloud.tencent.com/developer/article/1121452
坏坏的煎饼果子
2 年前
作者头像
我是攻城师
0 篇文章

如何合理的控制solr查询的命中的数量和质量?

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 我是攻城师 > 如何合理的控制solr查询的命中的数量和质量?

如何合理的控制solr查询的命中的数量和质量?

作者头像
我是攻城师
发布 于 2018-05-11 18:14:40
1.5K 0
发布 于 2018-05-11 18:14:40
举报

在solr里面,如何合理的控制的命中的数量?

在一些日常的文章中或一些信息中,都有一些高频词,而这些高频词,在参与查询时,往往会造成,大量的结果集命中。 什么意思呢? 举个例子,假如我们现在做的是饭店的搜索,在我们的索引库里有一列name这个field,这里面大部分都是xxx饭店,假如你搜索的时候搜一个xxx饭店,会被分词成: 然后xxx命中只有10条结果集, 而饭店确命中了20万结果集,这么以来总结果可能就有20多万条,造成了大量的数据命中,一方面显示了信息的丰富性,另一方面可能给用户造成太多的困惑。

我们分析下在全文检索中两个重要的概念


查准率

召全率

在Lucene,Solr和ElasticSearch里面一般的分词的查询结果都会对这两个率做一个最好效果的调配,而这个默认的相关性评分规则就是:

  • 相关性评分最高的排在前面,也就是查准的体现
  • 相关性低的排在后面,也就是查全的体现

当然上面的结论,并不是百分百正确的,因为由于Lucene底层的设计,可能会导致一些奇怪的效果,就是最精确的没有排在最前面,这种问题大概只有10%的概率,我们可以索引两个字段,来避免这种问题,一个分词,一个不分词,查询时候,可以一起查询两个字段.


回到刚才饭店的那个问题,假如现在有想要搜索一个: 北京车道沟北里小庄十里香饭店,分词后的情况如下:

车道 饭店

注意,在整个索引库里面大部分要搜索的数据都含有北京和饭店两个词,所以这一下几乎会索引里面的所有数据都查询出来了,虽然查询排名还可以,但命中量太大了,超过4页之后几乎都是北京xxxx饭店了,跟主题的搜索没啥关系,所以我们可以采取一些策略来避免这种情况: solr默认的搜索策略,是分词后的term的or的关系,最后结果集全部返回,如果我们改成and,那就是精确匹配了,但是有一点就是,如果是精确的匹配,某些时候用户输入的不完整的词就失去了全文检索的含义了,所以我们要采取一种综合的策略,既保证查准,又能保证召回,这样才能实现?

这个东西直接用我们的全文检索框架是没法实现的,有个思路不错,就是我们对要搜索的词,提取出句子的主干,然后主干部分在检索时,是必须要命中的,如果不命中,就算该条数据与查询的词,相关性不大,这个方法不错,但前提是你如何在大规模的数据里面精准的提出这些精确的主干词呢? 使用机器学习或者是文本挖掘? 答案是肯定能做,只是需要另外设计了,这是最好的解决搜索的命中数量太多的办法。

还有一个办法,是一种治标不治本的办法,比较容易实现,就是限制每次分词后最大匹配term的个数,也就是像

车道

 
推荐文章
爽快的绿豆  ·  一平浪镇杞栽“三一三”民俗文化旅游节掀起“五一” 乡村旅游小高潮-禄丰市人民政府网站
7 月前
打盹的领带  ·  广东省人民政府关于印发广东省促进天然气利用实施方案的通知  广东省人民政府门户网站
1 年前
爱喝酒的日光灯  ·  只吃水煮蔬菜,我一个月减20斤,简单有效,人人都可以做到|牛肉|生菜|糙米饭|煮鸡蛋|适量清水_网易订阅
1 年前
暴走的长颈鹿  ·  威尔胜耐磨网球鞋价格报价行情 - 京东
2 年前
风流倜傥的松鼠  ·  《人鱼缚》跌宕起伏悬疑丛生 完美细节塑大片质感 - 娱乐事实派 - 简书
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号