2013-05-09 33 views
-1

如何實現 「SELECT * FROM用戶WHERE ID NOT IN(4,5,6)」,在Lucene的如何實現SQL SERVER NOT IN子句中使用Lucene

+0

你可以發佈你的已經嘗試過? – 2013-05-09 14:22:34

+0

可能有此[問題]的重複(http://stackoverflow.com/questions/14405203/how-to-query-for-terms-in-a-collection-using-lucene-net-similar-to-sqls-in -ope) – rae1 2013-05-13 20:41:20

回答

0

嘗試:

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

了Lucene QueryParser將爲該表達式生成一個查詢,該查詢給出了您所提供的SQL查詢的相似結果。由於Lucene不會爲純粹否定的查詢返回任何結果,因此必須使用「AND」和「AND」。

0

下面是使用Lucene基於查詢的對象的方法。您將使用MUST_NOT/-MatchAllDocsQuery一起使用。 (見this question回答關於爲什麼需要一個MatchAllDocsQuery更多信息。)

您的查詢,然後會是這個樣子: *:* -ID:4 -ID:5 -ID:6