You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Doug Cutting <cu...@lucene.com> on 3203/12/01 19:23:01 UTC

Re: Integer.MAX_VALUE sentinel never checked?

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