在Lucene?中高效地执行批量精确匹配查找

92dk7w1h  于 2022-11-07  发布在  Lucene
关注(0)|答案(1)|浏览(211)

tl;dr:

使用一组密钥的精确匹配从Lucene批量获取文档的最佳方法是什么?

长版本:

我们有一个Lucene索引保存到磁盘,通过DirectoryReader读取。
它包含2,000,000个具有以下架构的文档:
{"key": "20-character-string", "value": "1-1000-character-string"}
我们现在需要执行SELECT document WHERE document.key IN $keyArray的等价操作--即,使用精确匹配返回其键与$keyArray(10,000个键的数组)相交的文档子集。
有没有比执行10,000个单独的搜索更好的方法?

qnzebej0

qnzebej01#

您应该使用TermInSetQuery
如果集合中的项少于16个,则它使用BooleanQuery示例的序列ORd,否则它使用更有效的方法(可能是排序的散列集)。

相关问题