【发布时间】:2017-10-12 06:22:35
【问题描述】:
在 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,有一些不成文的规则和不明显的缺陷,尤其是 negations 作为布尔查询的一部分。
对于我描述的查询,这是形成它们的正确语法吗?
【问题讨论】:
标签: solr lucene full-text-search information-retrieval booleanquery