我在solr(5.1)中使用3个术语进行搜索,当我更改术语的顺序时,我得到了不同的结果。当我使用solr中的debugQuery时,我发现,当术语之间的操作符是和时,solr就是添加+(必需操作符)。
例子:-
我有4个以字段为名称的文档。默认运算符为OR
"docs":{“名称”:“闪电盗贼”},{“名称”:“怪兽之海”},{“名称”:“索菲的世界:希腊哲学家”},{“名称”:"Lucene in Action,第二版“}
Query1 =name:(“怪兽之海”不是“行动中的卢塞尼”,第二版和“闪电盗贼”)
结果=“名称”:“闪电盗贼”
“名称:怪物之海”( -name:Lucene in Action,第二版+名称:闪电盗贼)
查询2 ==name:(“怪兽之海”和“闪电盗贼”,而不是“行动中的Lucene,第二版”)
结果=0份发现的文件
“查询”:“+名称:怪物之海+名称:闪电盗贼-name:Lucene,第二版”
请帮我理解这个逻辑。
发布于 2016-09-20 13:28:17
如果您的默认操作符是OR,这就是我所期望的。第二个例子是
TERM1 (OR)非TERM2和TERM3
所以TERM1是可选的
发布于 2016-09-20 13:53:26
问题当然来自于您的默认运算符(和vs OR)。您能提供准确的查询和调试输出吗?
此外,请尝试在查询中激活edismax,如下所示,因此您可以使用否定。
core/select?defType=edismax&q=(term1+OR+term2)+AND+-term3
https://stackoverflow.com/questions/39584936
复制相似问题