lucene 如何使用Solr Query语法查询同一列的项目列表?

b5lpy0ml  于 2022-11-07  发布在  Lucene
关注(0)|答案(3)|浏览(196)

我只想省略列“lastSnapshotStream”的4个特定字符串
我常用的使用Solr的短语查询语法(它是有效的)是:

(NOT lastSnapshotStream:"CM-NIS-22.5.5" AND NOT lastSnapshotStream:"CM-NIS-22.6" AND NOT lastSnapshotStream:"CM-NIS-22.7" AND NOT lastSnapshotStream:"CM-NIS-22.5")

这真的很大。如何简化像下面的东西???

(NOT lastSnapshotStream IN ("CM-NIS-22.5.5","CM-NIS-22.6","CM-NIS-22.7","CM-NIS-22.5"))

(lastSnapshotStream: NOT IN ("CM-NIS-22.5.5","CM-NIS-22.6","CM-NIS-22.7","CM-NIS-22.5"))
7kqas0il

7kqas0il1#

您可以使用field:(val1 OR val2 OR val3)语法来实现IN
*:* -lastSnapshotStream:("CM-NIS-22.5.5" OR "CM-NIS-22.6" OR "CM-NIS-22.7" OR "CM-NIS-22.5")
(the如果您只使用-field术语,前面的*:*是不必要的,因为如果没有,它应该被添加到您的查询前面)。

fzwojiic

fzwojiic2#

如果默认运算符是OR(默认值),则只需将

NOT lastSnapShotStream:(CM-NIS-22.5.5 CM-NIS-22.6.6 CM-NIS-22.4.4)
hjzp0vay

hjzp0vay3#

如果上面的答案对阅读本文的人不起作用,请尝试添加+操作符,例如+(field:val1 OR field:val2 OR field:val3),这为我修复了它。

相关问题