lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antony Bowesman <...@teamware.com>
Subject Can TermDocs.skipTo() go backwards
Date Wed, 27 Aug 2008 07:07:30 GMT
I have a custom TopDocsCollector and need to collect a payload from each final 
document hit.  The payload comes from a single term in each hit.

When collecting the payload, I don't want to fetch the payload during the 
collect() method as it will make fetches which may subsequently be bumped from 
the topDocs, so I want to fetch it during the topDocs() call.

I made some performance tests on a simple index of 5M documents.  If I do

reader.termPositions(term);
termPositions.skipTo(scoreDoc.doc);

it takes up to 282 ms just to make the skipTo.

The javadocs imply that skipTo() can only go forwards and as scoreDocs is in 
score order, not docId order, I suppose it's not possible to just use

termPositions.skipTo(scoreDoc.doc);

unless skipTo() can go both backwards.  Can it?  Javadocs imply there is more 
than one type of implementation.

If not I suppose I must resort the scoreDocs by docId order and then loop with 
termPositions.skipTo(scoreDoc.doc).  The number of hits will be typically small 
so it'll be fast enough.

Antony






---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message