0

我有两个 Lucene 索引(版本 3.5.0),我将使用 Hibernate Search 编写它们。我需要实现一个返回结果的搜索,该结果是各个索引上结果的交集 (AND)。主要问题是单个结果和最终结果都可能非常大,因此组合应该是有效的。有没有一种有效的方法来做到这一点?MultiReader可以帮助我吗?

4

1 回答 1

1
  1. MultiReader 是跨多个索引进行搜索的简便方法。
  2. 用索引标记每个 Lucene 文档可能是最快的解决方案;类似index:globalindex:local(如果你有globallocal索引)。例如,查询“异常”可能如下所示:

    (异常与索引:全局)或(异常与索引:本地)

之后您可以在其中过滤两个索引中出现的 Lucene 文档的搜索结果。

请注意,您不能执行简单的查询:

exception AND (index:global AND index:local)

因为将有 0(零)个具有index:globalindex:local值的 Lucene 文档。

于 2013-02-05T12:06:59.717 回答