1
我有一個MultiReader連接到幾個索引。我可以知道索引MultiReader從哪裏獲取文檔?
當我運行一個查詢並得到結果後,有沒有一種方法可以知道結果來自哪個索引?
我知道這不完全是MultiReader的用途。我仍然需要這個。
我有一個MultiReader連接到幾個索引。我可以知道索引MultiReader從哪裏獲取文檔?
當我運行一個查詢並得到結果後,有沒有一種方法可以知道結果來自哪個索引?
我知道這不完全是MultiReader的用途。我仍然需要這個。
如果你是誰創建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));
}
}
好奇,你的用例是什麼需要? – Mysterion
也,我沒有看到這樣做的任何簡單的方法,olny可能性是擴展Lucene類,導致CompositeReader有不同來源的ID。 – Mysterion