如何使用Lucene实现SQL SERVER NOT IN子句

时间:2013-05-09 00:54:49

标签: lucene.net lucene

如何在Lucene中实现“SELECT * FROM Users WHERE ID NOT IN(4,5,6)”

2 个答案:

答案 0 :(得分:0)

尝试:

NOT(ID:(4 OR 5 OR 6)) AND *:*

Lucene QueryParser将为该表达式生成一个查询,该查询提供与您提供的SQL查询类似的结果。 AND 是必要的,因为Lucene不会为纯粹的否定查询提供任何结果。

答案 1 :(得分:0)

以下是使用基于Lucene Query的对象的方法。您将MUST_NOT / -MatchAllDocsQuery结合使用。 (有关为什么需要MatchAllDocsQuery的更多信息,请参阅this question的答案。)

您的查询将如下所示: *:* -ID:4 -ID:5 -ID:6