【发布时间】:2013-01-21 09:33:57
【问题描述】:
我有两个 Lucene 索引(版本 3.5.0),我将使用 Hibernate Search 编写它们。我需要实现一个返回结果的搜索,该结果是各个索引上结果的交集 (AND)。主要问题是单个结果和最终结果都可能非常大,因此组合应该是有效的。 有没有一种有效的方法来做到这一点? MultiReader 可以帮助我吗?
【问题讨论】:
标签: java lucene hibernate-search
我有两个 Lucene 索引(版本 3.5.0),我将使用 Hibernate Search 编写它们。我需要实现一个返回结果的搜索,该结果是各个索引上结果的交集 (AND)。主要问题是单个结果和最终结果都可能非常大,因此组合应该是有效的。 有没有一种有效的方法来做到这一点? MultiReader 可以帮助我吗?
【问题讨论】:
标签: java lucene hibernate-search
用索引标记每个 Lucene 文档可能是最快的解决方案; index:global 和 index:local 之类的东西(如果你有 global 和 local 索引)。例如,查询“异常”可能如下所示:
(异常与索引:全局)或(异常与索引:本地)
您随后在其中过滤两个索引中出现的 Lucene 文档的搜索结果。
请注意,您不能执行幼稚查询:
exception AND (index:global AND index:local)
因为将有 0(零)个具有 index:global 和 index:local 值的 Lucene 文档。
【讨论】:
exception AND (index:global OR index:local) 呢?