lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doug Cutting <cutt...@lucene.com>
Subject Re: Integer.MAX_VALUE sentinel never checked?
Date Mon, 01 Dec 3203 18:23:01 GMT
I don't think this value actually find its way into the results.  Rather 
it causes PhraseScorer.score() to exit, as this value is always greater 
than the value of 'end' passed into that method.

Doug

Simon Cozens wrote:

> Plucene is nearly finished, and is busy being unit-tested to death. In the
> process of doing this, we found that some of our phrase queries were returning
> more results than we expected. This is because when PhrasePositions falls off
> the end of the iterator, it returns a sentinel value:
> 
>     if (!tp.next()) {
>       tp.close();                                 // close stream
>       doc = Integer.MAX_VALUE;                    // sentinel value
>       return;
>     }
> 
> However, I can't see anything else that checks for that sentinel:
> 
>  % grep MAX_ *.java
> DateFilter.java:  String end = DateField.MAX_DATE_STRING();
> PhrasePositions.java:      doc = Integer.MAX_VALUE;                       // sentinel
value
> TermScorer.java:      doc = Integer.MAX_VALUE;                    // set to sentinel
value
> TermScorer.java:          doc = Integer.MAX_VALUE;                // set to sentinel
value
> 
> so a very big document ID is finding its way into the result set. Is
> this the desired behaviour?
> 


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


Mime
View raw message