Solr" +"或必需的运营商

时间:2016-09-20 02:45:45

标签: solr

我使用3个术语在solr(5.1)中搜索,当我更改术语的顺序时,我得到不同的结果。 当我使用solr的debugQuery时,我发现,当术语之间的运算符为AND时,solr正在添加+(必需的运算符)。

实施例: -

我有4个文件,其中字段为名称。默认运算符是OR

" docs":[        {         "名字":"闪电小偷"       },       {         "名称":"怪物之海"       },       {         "姓名":"索菲的世界:希腊哲学家"       },       {         " name":" Lucene in Action,Second Edition"       }     ]

查询1 =姓名:("怪兽之海" NOT" Lucene在行动,第二版" AND"闪电小偷" ;)

结果="姓名":"闪电小偷"

" parsedquery":"名称:怪兽之海 - 名称:Lucene in Action,Second Edition + name:The Lightning Thief"

查询2 =姓名:("怪兽之海""闪电小偷" NOT" Lucene在行动,第二版&# 34)

结果=找到0个文件

" parsedquery":" +名称:怪兽之海+名字:闪电小偷 - 名字:Lucene在行动,第二版""

请帮助我理解这个逻辑。

2 个答案:

答案 0 :(得分:1)

如果您的默认运营商是OR,这就是我所期望的。你的第二个例子是

TERM1(OR)NOT TERM2 AND TERM3

所以TERM1是可选的

答案 1 :(得分:0)

问题肯定来自您的默认运算符(AND vs OR)。你能提供准确的查询和调试输出吗?

此外,尝试在您的查询中激活edismax,如下所示,因此您可以使用否定。

http://localhost:8983/solr/your_search_core/select?defType=edismax&q=(term1+OR+term2)+AND+-term3