我有两个Lucene索引(版本3.5.0),我将使用Hibernate Search编写。我需要实现一个搜索,它返回一个结果,该结果是各个索引上结果的交集(AND)。主要问题是个别结果和最终结果都可能非常大,因此组合应该是有效的。 有没有一种有效的方法来做到这一点? MultiReader可以帮助我吗?
答案 0 :(得分:1)
使用索引标记每个Lucene文档可能是最快的解决方案;像index:global
和index:local
之类的东西(如果你有global
和local
索引)。例如,查询“异常”可能如下所示:
(例外和索引:全局)或(例外和索引:本地)
之后,您将对两个索引中出现的Lucene文档过滤搜索结果。
请注意,您无法执行天真的查询:
exception AND (index:global AND index:local)
因为将有0(零)个Lucene文档同时具有index:global
和index:local
值。