2

我们有一个简单的域

FirstName_s:"Bob"

返回 40 个文档,并且

-Department_t:"Ninjas"

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

我们期望查询

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

退回所有文件,但它只退回了原始的 40 份文件。

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

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

4

2 回答 2

0

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

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

以某种方式重写查询,它不会包含 OR(使用De_Morgan 定律)有帮助吗?

-(-FirstName_s:"Bob" AND Department_t:"Ninjas")
于 2012-04-04T18:42:13.460 回答
0

事实证明,这是多值字段的问题,并且它们的行为方式不是。

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

(*:* -department_t:"Ninjas")
于 2012-04-05T15:19:30.370 回答