[
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]