solr长文本搜索问题

简介: 假期重新把之前在新浪博客里面的文字梳理了下,搬到这里

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

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

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

分析

当前默认都是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  \“ 幻灯片\”   有结果   结果排序与期望相差很远,排在一起的没在前面

目录
相关文章
|
7月前
文本搜索命令
文本搜索命令
49 0
|
机器学习/深度学习 数据采集 存储
ElasticSearch 之 文本搜索
ElasticSearch 之 文本搜索
205 0
|
SQL JSON 自然语言处理
白话Elasticsearch01- 结构化搜索之使用term query来搜索数据
白话Elasticsearch01- 结构化搜索之使用term query来搜索数据
303 0
|
SQL Java
白话Elasticsearch04- 结构化搜索之使用terms query搜索多个值以及多值搜索结果优化
白话Elasticsearch04- 结构化搜索之使用terms query搜索多个值以及多值搜索结果优化
531 0
|
机器学习/深度学习 人工智能 编解码
【搜索引擎】Apache Solr 神经搜索
【搜索引擎】Apache Solr 神经搜索
|
自然语言处理 索引
Elasticsearch添加拼音搜索支持
Elasticsearch添加拼音搜索支持
265 0
|
存储 自然语言处理 前端开发
基于solr实现通用:输入提示、纠错、拼音搜索、繁体搜索方案
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。文本介绍基于solr实现通用:输入提示、纠错、拼音搜索、繁体搜索方案。
396 0
基于solr实现通用:输入提示、纠错、拼音搜索、繁体搜索方案
|
Linux BI Shell
文本排序与搜索命令 | 学习笔记
快速学习文本排序与搜索命令。
118 0
|
自然语言处理 索引
solr长文本搜索问题
多关键词搜索排序质量一直一个疼痛的问题,已经频繁遇到,目前还没来得及系统解决。 针对之前的解决经验,做一个小节,后面可能随着对排序质量的提高,会越来越突出。 请大家拍砖和丰富这方面的经验,提升解决需求的效率。 分析 当前默认都是phrasequery执行,对指定域先分词,然后
2479 5
下一篇
DataWorks