SOLR在查询中忽略'NOT'子句

时间:2012-04-04 18:26:28

标签: solr

我们有一个简单的域名

FirstName_s:"Bob"

返回40个文档,

-Department_t:"Ninjas"

返回所有文件(我们没有忍者部门)。

我们期待查询

(FirstName_s:"Bob") OR (-Department_t:"Ninjas")

返回所有文件,但它只返回原来的40个文件。

我们尝试了几种不同的排序,尝试使用“NOT”代替“ - ”都无济于事。

这是预期的行为吗? 也许更重要的是,我们如何得到我们期望的行为?

2 个答案:

答案 0 :(得分:0)

我偶然发现了https://issues.apache.org/jira/browse/SOLR-2209,所以括号可能会导致错误。这有用吗?

FirstName_s:"Bob" OR -Department_t:"Ninjas"

是否以某种方式重写查询,它不会包含OR(使用De_Morgan's law)帮助?

-(-FirstName_s:"Bob" AND Department_t:"Ninjas")

答案 1 :(得分:0)

这对于多值字段以及它们的行为方式来说是一个问题。

我们必须将我们对多值字段的所有非查询修改为

(*:* -department_t:"Ninjas")