【问题标题】:Intersect search results of multiple indexes Lucene efficently高效交叉多个索引Lucene的搜索结果
【发布时间】:2013-01-21 09:33:57
【问题描述】:

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

【问题讨论】:

    标签: java lucene hibernate-search


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

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

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

    请注意,您不能执行幼稚查询:

    exception AND (index:global AND index:local)
    

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

    【讨论】:

    • exception AND (index:global OR index:local) 呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2012-02-12
    • 2012-10-22
    • 1970-01-01
    • 2017-08-27
    相关资源
    最近更新 更多