在 Solr 6.5.1 上,我有一个*_txt_en
字段和一个string
文档类型字段。在这些字段上,我想构建一个表单的查询:
匹配特定文档类型的所有文档,其中:
- 某些短语(“短语一”、“短语二”)必须出现在要匹配的文本字段中
- 但如果其他短语(“短语三”、“短语四”、“短语五”)也出现在该字段中,则不匹配。
我当前编写的 Solr 查询如下所示:
(documenttype:references AND (field:"phrase one" OR field:"phrase two")) AND NOT field:"phrase three" AND NOT field:"phrase four" AND NOT field:"phrase five"
我能想到的另一种选择是:
(documenttype:references AND (field:"phrase one" OR field:"phrase two")) AND NOT (field:"phrase three" OR field:"phrase four" OR field:"phrase five")
上述查询似乎适用于几个示例的玩具数据集。但我了解到,使用 Solr,有一些不成文的规则和不明显的缺陷,尤其是在布尔查询中使用否定。
对于我描述的查询,这是形成它们的正确语法吗?