现在我有几个Lucene索引集(我称之为分片),它索引不同的文档集.它们是独立的,这意味着我可以在不阅读其他内容的情况下对每个进行搜索.然后我收到一个查询请求.我想在每个索引集上搜索它并将结果组合起来形成最终的顶级文档.
我知道,在对文档进行评分时,Lucene需要知道每个术语的< idf >,不同的索引集将为同一个术语提供不同的< idf >(因为不同的索引集包含不同的文档集).据我所知,我无法直接比较不同索引集的文档得分.那么我应该如何生成最终结果呢?
一个明显的解决方案是首先合并索引,然后对大索引执行搜索.然而,这对我来说太耗费时间,因此是不可接受的.谁有其他更好的解决方案?
PS:除了Lucene和Hadoop之外,我不想使用任何软件包或软件(如Katta).