Solr最小匹配(mm)被强制性条款忽略?
Solr属性:Solr最小匹配(mm)被强制性条款忽略?,solr,lucene,query-parser,Solr,Lucene,Query Parser,Solr属性: solr-5.2.1 默认运算符为和 我正在使用下一个查询: NAME:marie SECOND_NAME:curie +PROFESSION:physicist mm=80% 根据我的预测,搜索结果将匹配2个子句(如(int)(3*0.8)=2) 由于需要专业,我希望在结果中我将在该属性上匹配,并且至少彼此匹配-无论是名称还是第二个名称 事实上,我得到的所有文档都符合《专业:物理学家》和其他领域的任何其他值。如果我从请求中删除+符号,solr将返回至少有2个匹配项的结果(
- solr-5.2.1
- 默认运算符为和
NAME:marie SECOND_NAME:curie +PROFESSION:physicist
mm=80%
根据我的预测,搜索结果将匹配2个子句(如(int)(3*0.8)=2
)
由于需要专业,我希望在结果中我将在该属性上匹配,并且至少彼此匹配-无论是名称还是第二个名称
事实上,我得到的所有文档都符合《专业:物理学家》和其他领域的任何其他值。如果我从请求中删除+符号,solr将返回至少有2个匹配项的结果(因此在这种情况下,最小匹配项可以正常工作)
看起来,在请求中添加强制选项会废除最小匹配条件。smb能否解释这是否是预期行为
谢谢我建议您使用布尔条件重写少量查询
(PROFESSION:physicist) AND (NAME:marie OR SECOND_NAME:curie )
您还应该使用Demax插件来使用Min/max
更新:
从Solr4.0开始,mm的默认值由q.op参数指定(q.op=AND=>mm=100%;q.op=OR=>mm=0%)。以这种方式重写查询可以在最小匹配的情况下正常工作。要么我不明白,查询解析器是如何工作的,要么那里有一些bug。Thanks@AlexanderMartynov我已经更新了我的答案。“从Solr4.0开始,mm的默认值由q.op参数决定(q.op=AND=>mm=100%;q.op=OR=>mm=0%)。”谢谢你的回答,你能告诉我一些文档/变更列表来阅读更多细节吗?@AlexanderMartynov DixMax你需要阅读更多关于Demax插件的信息(DisMaxRequestHandler)@AlexanderMartynov在使用DisMaxHander插件时,默认运算符或与简单查询插件的工作方式略有不同。mm总是在变化。=>(mm的默认值由q.op参数决定(q.op=AND=>mm=100%;q.op=OR=>mm=0%)