solr长文本搜索问题

简介: 多关键词搜索排序质量一直一个疼痛的问题,已经频繁遇到,目前还没来得及系统解决。 针对之前的解决经验,做一个小节,后面可能随着对排序质量的提高,会越来越突出。 请大家拍砖和丰富这方面的经验,提升解决需求的效率。 分析 当前默认都是phrasequery执行,对指定域先分词,然后

多关键词搜索排序质量一直一个疼痛的问题,已经频繁遇到,目前还没来得及系统解决。


针对之前的解决经验,做一个小节,后面可能随着对排序质量的提高,会越来越突出。


请大家拍砖和丰富这方面的经验,提升解决需求的效率。


分析


当前默认都是phrasequery执行,对指定域先分词,然后按照短语去查询,当出现分词交叉后,结果就悲剧了。


当非自动生成phrasequery时候,指定域也会分词,然后按照
AND 
或者 OR

拼接起来去查,此时,短语的关联性丢失,挨在一起的可能没有排在前面,尽管有结果。


当不自动生成phrasequery时候,"  " 
将查询出当做整体,此时依然会分词,只是查询时分词后的拼接去查。例如 交易成功 
转为 交易

成功


当扩展查询串去查,可能结果来自扩展串,有结果但不一定就是期望。


改为 
建索引最多分词、查询最长匹配,能解压一部分场景需求,对于精准查询的短语、长文本尤其效果好,对于追求结果最多不适应。


或者 
业务执行分词然后按照业务需求执行坡度或者相关性激励来调整相关性。例如 (交易

成功)~12 And

交易^10

成功^2

 


总结:


新业务依赖长文本查询的,需要daily仔细测试,对多关键词的抽样测试不可少。

    

新的对精准匹配要求高的检验使用IK分词,分别配置建索引和查询的分词模式。

    
DismaxQueryparse
 
能有效的减少查询IO和“去重“,完全可以替代
OR 
扩展查询,目前发现一个不友好,例如 
“成功页面 
交易成功”,这个串中“成功”分量非常大,导致


结果排序有点糟糕。

    
Dismaqueryparse
覆盖lucenequeryparse全部功能,同时提供更丰富的查询相关性设置, 
分词内部关系式OR

,一定能保证有结果,


配饰使用方法,在solrconfig.xml  requesthandler

中配置 edismax

Phrasequery 
不启用,一种方法是schema
verison
定义为1.4就可以了,另外是
fieldtype中显示定义不生成,同时solrconfig中配置lucene 
版本34


问题背景


使用paoding分词,默认AND 
autogeneralPhrasequery
= true


搜“交易成功 
幻灯片” 
没有结果       --AND之后幻灯片部分没有结果导致没有结果


搜“交易成功” 
有结果 


搜“幻灯片” 
没有结果----》原因是分词交叉

 


使用paoding分词,autogeneralPhrasequery = false


搜“交易成功 
幻灯片” 
有结果        

结果来自交易成功部分


搜“交易成功”        有结果


搜“幻灯片”          没有结果      

交叉依然没有结果

 


使用paoding分词,autogeneralPhrasequery = false  扩展OR


搜“交易成功 
幻灯片” 
扩展为 
“交易成功 
幻灯片” OR  交易成功

幻灯片    有结果,结果排序严重受关键词、索引影响


搜“交易成功”        扩展为“交易成功”
OR   

交易成功   有结果
  多余IO出现了


搜“幻灯片”          扩展为“幻灯片”
  OR
 


幻灯片   有结果  

结果排序与期望相差很远,排在一起的没在前面

相关文章
hutool工具随机获得列表中的一定量的不重复元素,返回Set
hutool工具随机获得列表中的一定量的不重复元素,返回Set
hutool工具随机获得列表中的一定量的不重复元素,返回Set
|
JSON Kubernetes 算法
Cobra 命令自动补全指北
本篇文章就来讲讲如何使用 Cobra 来实现命令自动补全。
4264 0
|
程序员
阿里技术高P访谈之“呆萌”程序员蒋晓伟为何从Facebook到阿里巴巴
跟蒋晓伟约在一个下午进行访谈,他的花名叫量仔,这个名号让笔者的第一感觉是“高富帅”。然而,当见到本尊之后,才发现他完全就是一个“呆萌”版的程序员,这也印证了其在阿里巴巴内网上的标签——“头像蛮萌的”。
11127 2
|
9月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
阿里云服务器带宽价格参考:选择1M、3M、5M、10M宽带价格解析
阿里云服务器1M、3M、5M、10M宽带需要多少钱?单说阿里云服务器宽带多少钱,而不确定云服务器实例规格及cpu和内存配置的话,是没办法具体说多少钱的,因为云服务器的价格受很多因素影响。本文将详细解析阿里云服务器在选择1M、3M、5M、10M不同带宽下的价格差异,以供大家参考。
阿里云服务器带宽价格参考:选择1M、3M、5M、10M宽带价格解析
|
IDE 数据中心 Docker
使用PyCharm与Docker容器进行开发:从入门到精通
使用PyCharm与Docker容器进行开发:从入门到精通
4572 0
|
编译器
ProtoBuf的安装
ProtoBuf的安装
379 0
|
存储 索引
【数据结构】图的存储结构—邻接表
【数据结构】图的存储结构—邻接表
1764 0
【数据结构】图的存储结构—邻接表
|
存储 Java 对象存储
阿里云开通OSS存储服务详细流程
阿里云开通OSS存储服务详细流程
阿里云开通OSS存储服务详细流程
|
云计算
阿里云认证的费用是多少?证书有效期是多久?
为了能跟上社会的发展,很多公司都转变了自己的运行方式,从线下转为了线上,抓住网络这个平台,大力推广自己的产品,拓宽自己的发展渠道,这样一来就需要专业的人才来维护企业的运行,于是关于专业人才的考试机制也出现了。
阿里云认证的费用是多少?证书有效期是多久?

热门文章

最新文章