0

我的 solr 索引包含具有名为部门的字段的文档。此字段是多值非必需 int 字段。我想构造一个查询,其结果必须是并集

  • 所有不包含外勤部门的文件
  • 包含字段部门的所有文档,但字段的值仅限于选定的少数几个。

我尝试构建如下所示的查询:

-department:* OR (department:* AND department:(100 OR 200))

这不会返回任何结果。而如果我只是使用

-department:* 

或者

department:* AND department:(100 OR 200)

,查询似乎运行良好。简而言之,在这种情况下,我无法理解 OR 子句的行为。任何指针?

4

2 回答 2

2

结帐SolrQuery 语法

纯否定查询:-

-field:[* TO *] 查找所有没有字段值的文档

你可以试试 :-

q=-部门:[* TO *] OR 部门:(100 OR 200)

于 2012-12-26T03:40:17.013 回答
0

为了实现你想要的,我认为你可以使用Solr grouping

你可以给类似的东西,

&q=*&group=true&group.query=department:[100]&group.query=department:[200]&group.query=-department:[*]
于 2012-12-28T14:49:09.180 回答