我有两个 Lucene 索引(版本 3.5.0),我将使用 Hibernate Search 编写它们。我需要实现一个返回结果的搜索,该结果是各个索引上结果的交集 (AND)。主要问题是单个结果和最终结果都可能非常大,因此组合应该是有效的。有没有一种有效的方法来做到这一点?MultiReader可以帮助我吗?
问问题
1487 次
1 回答
1
- MultiReader 是跨多个索引进行搜索的简便方法。
用索引标记每个 Lucene 文档可能是最快的解决方案;类似
index:global
和index:local
(如果你有global
和local
索引)。例如,查询“异常”可能如下所示:(异常与索引:全局)或(异常与索引:本地)
之后您可以在其中过滤两个索引中出现的 Lucene 文档的搜索结果。
请注意,您不能执行简单的查询:
exception AND (index:global AND index:local)
因为将有 0(零)个具有index:global
和index:local
值的 Lucene 文档。
于 2013-02-05T12:06:59.717 回答