You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Azeez Latheef <mk...@gmail.com> on 2023/09/22 12:04:40 UTC

RE: Re: Integer.MAX_VALUE sentinel never checked?

On 3203/12/01 19:23:01 Doug Cutting wrote:
> 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
>
>