[ 
https://issues.apache.org/jira/browse/LUCENE-5682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joel Bernstein updated LUCENE-5682:
-----------------------------------

    Attachment: LUCENE-5682.patch

Quick patch. It's a little tough to read due to some code indenting but 
basically I just wrapped a null check around this block of code:

{code}
      if(scorer != null) {
        int targetDoc = docID - docBase;
        int actualDoc = scorer.docID();
        if (actualDoc < targetDoc) {
          actualDoc = scorer.advance(targetDoc);
        }

        if (actualDoc == targetDoc) {
          // Query did match this doc:
          hit.score = combine(hit.score, true, scorer.score());
        } else {
          // Query did not match this doc:
          assert actualDoc > targetDoc;
          hit.score = combine(hit.score, false, 0.0f);
        }
      }
{code}

Looks like we need to check for a null scorer on each hit because the segment 
could change with each hit. I didn't follow through with a combine is this 
situation as you did on a miss hit, but we could if you want to.

> NPE in QueryRescorer when Scorer is null
> ----------------------------------------
>
>                 Key: LUCENE-5682
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5682
>             Project: Lucene - Core
>          Issue Type: Bug
>    Affects Versions: 4.8
>            Reporter: Joel Bernstein
>            Assignee: Joel Bernstein
>         Attachments: LUCENE-5682.patch
>
>
> While testing out the QueryRescorer I was getting an NPE on the scorer  when 
> using a TermQuery as the rescore query. Looks like a TermQuery will return a 
> null Scorer if  the term is not present in the index segment.
> Caused by: java.lang.NullPointerException
>    [junit4]    >      at 
> org.apache.lucene.search.QueryRescorer.rescore(QueryRescorer.java:89)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to