我可以知道MultiReader从哪个索引获取文档?

时间:2015-09-30 12:57:36

标签: lucene

我有MultiReader连接到多个索引。

运行查询并获得结果后,有没有办法知道结果来自哪个索引?

我知道这不是MultiReader的用途。我仍然需要这个。

1 个答案:

答案 0 :(得分:0)

如果您是创建MultiReader实例的人,则可以

您可以扩展该类并实现所需的功能。 BaseCompositeReader(超级MultiReader类型)具有readerIndex()getSequentialSubReaders()方法。所以下面的代码应该可以工作:

public static class MyMultiReader extends MultiReader {

    public MyMultiReader(IndexReader... subReaders) throws IOException {
        super(subReaders);
    }

    public IndexReader getReaderForDocument(int docId) {
        return getSequentialSubReaders().get(readerIndex(docId));
    }
}