我添加了一个字段,ID
其中STORE NO
和字段将仅包含唯一 ID。NOT ANALYZED
index.ID
我想使用IN
查询。例如,如果我只想通过在索引中搜索 id 为 1、2、3、4 的文档,我尝试了 QueryParser 用空格 1 2 3 4 分隔 id。
它确实给了我。但是有没有其他更快更可行的方法呢?
我添加了一个字段,ID
其中STORE NO
和字段将仅包含唯一 ID。NOT ANALYZED
index.ID
我想使用IN
查询。例如,如果我只想通过在索引中搜索 id 为 1、2、3、4 的文档,我尝试了 QueryParser 用空格 1 2 3 4 分隔 id。
它确实给了我。但是有没有其他更快更可行的方法呢?
如果您看一下这个问题,还有其他一些方法可以实现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));
将术语列表作为运算符传递给 Lucene.Net IN
。