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