On Jun 21, 2005, at 9:19 AM, Nick Burch wrote:
Hi
I've been scanning the JavaDocs, but I can't see anything on this.
Let's say I have two indexes. Both have just been optimised, so
each have lucene IDs 1-10 in them.
Now, I build a MultiSearcher over these two indexes. I search, get
back a Hits object, and from that a lucene ID
From my testing, it seems that the MultiSearcher has handily
offset all
the lucene IDs from the second index, so they don't clash with the
first. It also seems that if I pass that ID to a MultiReader built
on the same set of indexes, I get the right document back.
(i.e. my hits object gives me a lucene ID of 5 for my first hit,
and if I ask the multireader for document with lucene ID 5, I get
the same document)
Is this always going to be the case? Do I simply have to ensure
that I open the MultiReader and MultiSearcher with the indexes in
the right order to ensure the lucene IDs will be identically
munged, or is it trickier than that?
lucenebook.com uses MultiSearcher and hits from different indexes are
handled differently. Blog hits are shown fully. Book section hits
are shown as snippets. Here's how it's done:
MultiSearcher searcher = (MultiSearcher) context.getAttribute
("searcher");
IndexReader[] readers = (IndexReader[]) context.getAttribute
("readers");
for (int i = startHit; i <= endHit; i++) {
int position = i - 1;
Document doc = hits.doc(position);
int indexIndex = searcher.subSearcher(hits.id(position));
IndexReader reader = readers[indexIndex];
// ...
}
MulitSearcher handles the offsetting based on the specific IndexReader.
Look at the MultiSearcher API. There is also a subDoc() method to
get the document number for it's specific index.
Erik
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]