You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Raimon Bosch <ra...@gmail.com> on 2009/07/10 12:55:41 UTC

CompareBottom and setBottom in TopFieldCollector and FieldComparator


Hi,

I don't understand  the uses of compareBottom and setBottom. I've seen that
setBottom is setting always the minimal score during the comparisons but I
don't see why we need this value.

In the TopFieldCollector I saw this piece of code:

////////////
final int cmp = reverseMul * comparator.compareBottom(doc);
        if (cmp < 0 || (cmp == 0 && doc + docBase > bottom.docID)) {
          return;
        }
if (cmp < 0 || (cmp == 0 && doc + docBase > bottom.docID)) {
          return;
        }
//////////

that I suppose that is the real use of the function but I don't understand
it 100%. Any ideas? 

Regards,
Raimon Bosch.
-- 
View this message in context: http://www.nabble.com/CompareBottom-and-setBottom-in-TopFieldCollector-and-FieldComparator-tp24425303p24425303.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.


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


Re: CompareBottom and setBottom in TopFieldCollector and FieldComparator

Posted by Mark Miller <ma...@gmail.com>.
There are a lot of calls to compare that only compare to the bottom (think
of the common case when the queue fills quickly). Set and compare bottom
cache that value. So you can pre cache the bottom ord and save derefing into
the array. It could just as easily be a call to compare, but it would be
slower.
-- 
- Mark

http://www.lucidimagination.com

On Fri, Jul 10, 2009 at 10:55 AM, Raimon Bosch <ra...@gmail.com>wrote:

>
>
> Hi,
>
> I don't understand  the uses of compareBottom and setBottom. I've seen that
> setBottom is setting always the minimal score during the comparisons but I
> don't see why we need this value.
>
> In the TopFieldCollector I saw this piece of code:
>
> ////////////
> final int cmp = reverseMul * comparator.compareBottom(doc);
>        if (cmp < 0 || (cmp == 0 && doc + docBase > bottom.docID)) {
>          return;
>        }
> if (cmp < 0 || (cmp == 0 && doc + docBase > bottom.docID)) {
>          return;
>        }
> //////////
>
> that I suppose that is the real use of the function but I don't understand
> it 100%. Any ideas?
>
> Regards,
> Raimon Bosch.
> --
> View this message in context:
> http://www.nabble.com/CompareBottom-and-setBottom-in-TopFieldCollector-and-FieldComparator-tp24425303p24425303.html
> Sent from the Lucene - Java Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>


--