Hi All, What is the best way to achieve the following and what are the differences, if I say "I do not normalize scores, so I do not need max score tracking, I do not care if hits are returned in doc id order, or any other order. I need only to get maxDocs *best scoring* documents":
OPTION 1: TopDocs top = ixSearcher.search(q, filter, maxDocs); OPTION 2: final TopScoreDocCollector tfc = TopScoreDocCollector.create(maxDocs, false); ixSearcher.search(q, filter, tfc); TopDocs top = tfc.topDocs(); OPTION 3: final TopFieldCollector tfc = TopFieldCollector.create(Sort.RELEVANCE, maxDocs, false /* fillFields */, true /* trackDocScores */, false /* trackMaxScore */, false /* docsInOrder */); ixSearcher.search(q.weight(ixSearcher),filter, tfc); TopDocs top = tfc.topDocs(); what are the pros and cons? If I read javadoc correctly, - OPTION 1 tracks max score and delivers doc Ids in order (suboptimal performance for my case) - OPTION 2 I do not know abut max score tracking, but doc Ids are not required to be in order - OPTION 3 looks like exactly what I want, but one performance comment in javadoc about Sort.RELEVANCE made me think if that is the fastest way? What would be recommended here, any other options to achieve the fastest search with above defined conditions (no max score tracking and doc id order irrelevant)? OPTIN2 looks nice, but as said, I am not sure about max score tracking? Thanks, eks --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org