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

时间:2016-11-09 11:52:52

标签: solr lucene

我想只留下列中的4个特定字符串' lastSnapshotStream'

我使用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"))

3 个答案:

答案 0 :(得分:1)

您可以使用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")

(如果您只使用*:*字词,则不需要前面的-field,因为如果不存在,则应该在您的查询前加上它。 <{1}}大写是很重要的。

答案 1 :(得分:1)

如果默认运算符是OR(默认值),那么你可以放

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

答案 2 :(得分:0)

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