我的solr索引包含具有名为department的字段的文档。该字段是多值非必需的int字段。我想构造一个结果必须是
的联合的查询我尝试构建看起来像这样的查询:
-department:* OR (department:* AND department:(100 OR 200))
这不会返回任何结果。而如果我只是使用
-department:*
或
department:* AND department:(100 OR 200)
,查询似乎运作良好。简而言之,我在这种情况下无法理解OR子句的行为。有什么指针吗?
答案 0 :(得分:2)
纯正否定查询: -
-field:[* TO *]查找没有字段值的所有文档
您可以尝试: -
q = -department:[* TO *] OR department:(100 OR 200)
答案 1 :(得分:0)
为了实现您的目标,我认为您可以使用Solr grouping。
你可以提供类似的东西,
&q=*&group=true&group.query=department:[100]&group.query=department:[200]&group.query=-department:[*]