Lucene 我能知道MultiReader从哪个索引获取文档吗?

Lucene 我能知道MultiReader从哪个索引获取文档吗?,lucene,Lucene,我有一个连接到多个索引的索引 在我运行一个查询并获得结果之后,有没有办法知道结果来自哪个索引 我知道这并不完全是MultiReader的用途。我仍然需要这个。如果您是创建多阅读器实例的人,您可以 您可以扩展该类并实现所需的功能BaseCompositeReader(超级类型的MultiReader)具有readerIndex()和getSequentialSubReaders()方法。因此,以下代码应该可以工作: public static class MyMultiReader extends

我有一个连接到多个索引的索引

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

我知道这并不完全是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));
    }
}

好奇的是,对于这种需求,您的用例是什么?另外,我不认为有任何简单的方法可以做到这一点,唯一的可能性是扩展Lucene类,因为CompositeReader具有不同源的ID。