我有以下情况。
Solr 文档具有字段 --> id 和状态。ID 不是唯一的。独特之处在于这两种元素的结合。具有相同 id 的文档具有不同的状态。
文件清单
-ID- -STATUS-
id1 1
id1 2
id1 3
id1 4
id2 1
id2 2
id3 1
我需要进行查询以获取具有特定状态的所有文档并排除没有其他特定状态的文档。例如,我需要获取所有状态为 2 且不为状态 3 的文档。预期结果应该是 document :
id2 2
另一个例子:所有状态为 1 且没有状态 3 的文档。那么结果应该是:
id2 1
id3 1
这是我的查询不起作用
(hostPart)/solr/select/?q=status:1&version=2.2&start=0&rows=10&indent=on&fl=id,status&fq=-id:(id:* AND status:2
)问题出在过滤器查询(fq)部分。在 fq 中必须是状态为 2 的文档的 ID,如果当前文档 ID 在此列表中,则要排除。
我想一些子查询必须在 fq 部分或其他东西中使用。
仅供参考,我使用的是 APACHE SOLR 3.6,文档数量约为 100k。
提前致谢 :)