1
我已經添加了一個字段ID
與STORE NO
和NOT ANALYZED
在index.ID
字段中將只包含唯一的ID。如何在Lucene.Net中進行IN查詢
我想使用IN
查詢。例如。如果我只想通過在索引中搜索具有ids 1,2,3,4的文檔,我試過QueryParser將ID與空格分開1 2 3 4.
它確實給了我。但是有沒有其他方法更快更可行?
我已經添加了一個字段ID
與STORE NO
和NOT ANALYZED
在index.ID
字段中將只包含唯一的ID。如何在Lucene.Net中進行IN查詢
我想使用IN
查詢。例如。如果我只想通過在索引中搜索具有ids 1,2,3,4的文檔,我試過QueryParser將ID與空格分開1 2 3 4.
它確實給了我。但是有沒有其他方法更快更可行?
如果你看看this question還有一些其他的方法來實現IN
運算符。
默認情況下,傳遞給Lucene.Net
(空格分隔的術語)的所有術語進行或運算。正在執行,
Id: 1 2 3 4
將返回與任何通過的ID匹配的所有文檔。
您可以使用類似,
var collection = new[] { "1", "2", "3", "4" };
var query = new QueryParser(version, propertyName, analyzer)
.Parse(string.Join(" ", collection));
到的術語列表傳遞給Lucene.Net爲IN
操作。
你可以把你正在嘗試構建的查詢 – 2013-02-16 10:06:10
QueryParser par = new QueryParser(version.30,「Id」,new Standardanalyzer(version.30)); Query qry = par.parser(「1 2 3 4」 ); searcher.search(QRY,reader.maxdoc); – user1051536 2013-02-16 11:47:46