diff --git a/src/java/org/apache/lucene/search/MultiSearcher.java b/src/java/org/apache/lucene/search/MultiSearcher.java index ddc845236a8..2fab6955df0 100644 --- a/src/java/org/apache/lucene/search/MultiSearcher.java +++ b/src/java/org/apache/lucene/search/MultiSearcher.java @@ -98,13 +98,20 @@ public class MultiSearcher extends Searcher implements Searchable { /** For use by {@link HitCollector} implementations. */ public Document doc(int n) throws IOException { - int i = searcherIndex(n); // find searcher index + int i = subSearcher(n); // find searcher index return searchables[i].doc(n - starts[i]); // dispatch to searcher } - /** For use by {@link HitCollector} implementations to identify the - * index of the sub-searcher that a particular hit came from. */ - public int searcherIndex(int n) { // find searcher for doc n: + /** Call {@link #subSearcher} instead. + * @deprecated + */ + public int searcherIndex(int n) { + return subSearcher(n); + } + + /** Returns index of the searcher for document n in the array + * used to construct this searcher. */ + public int subSearcher(int n) { // find searcher for doc n: // replace w/ call to Arrays.binarySearch in Java 1.2 int lo = 0; // search starts array int hi = searchables.length - 1; // for first element less @@ -126,6 +133,12 @@ public class MultiSearcher extends Searcher implements Searchable { return hi; } + /** Returns the document number of document n within its + * sub-index. */ + public int subDoc(int n) { + return n - starts[subSearcher(n)]; + } + public int maxDoc() throws IOException { return maxDoc; }