我在ID
字段中添加了一个STORE NO
字段NOT ANALYZED
,而index.ID
字段中的IN
只包含唯一ID。
我想使用{{1}}查询。例如。如果我只想通过索引搜索ID为1,2,3,4的文档,我尝试使用空格1 2 3 4分隔ID的QueryParser。
它确实给了我。但是还有其他方法更快更可行吗?
答案 0 :(得分:2)
如果您查看this question,可以使用其他方法来实现IN
运算符。
默认情况下,传递给Lucene.Net
的所有术语(以空格分隔的术语)都是ORed。执行,
Id: 1 2 3 4
将返回与传递的任何ID相匹配的所有文档。
你可以使用类似的东西,
var collection = new[] { "1", "2", "3", "4" };
var query = new QueryParser(version, propertyName, analyzer)
.Parse(string.Join(" ", collection));
将一个术语列表作为IN
运算符传递给Lucene.Net。