Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr最小匹配(mm)被强制性条款忽略?_Solr_Lucene_Query Parser - Fatal编程技术网

Solr最小匹配(mm)被强制性条款忽略?

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属性:

  • 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%)