Christine Poerschke created LUCENE-10477:
--------------------------------------------
Summary: SpanBoostQuery.rewrite was no-op for boost==1 factor
Key: LUCENE-10477
URL: https://issues.apache.org/jira/browse/LUCENE-10477
Project: Lucene - Core
Issue Type: Bug
Affects Versions: 8.11.1
Reporter: Christine Poerschke
Assignee: Christine Poerschke
_(This bug report concerns pre-9.0 code only but it's so subtle that it
warrants sharing I think and maybe fixing if there was to be a 8.11.2 release
in future.)_
Some existing code e.g.
[https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.11.1/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/SpanNearBuilder.java#L54]
adds a {{SpanBoostQuery}} even if there is no boost or the boost factor is
{{1.0}} i.e. technically wrapping is unnecessary.
Query rewriting should counteract this somewhat except it might not e.g. note
at
[https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.11.1/lucene/core/src/java/org/apache/lucene/search/spans/SpanBoostQuery.java#L81-L83]
how the rewrite is a no-op i.e. {{this.query.rewrite}} is not called!
This can then manifest in strange ways e.g. during highlighting:
{code:java}
...
java.lang.IllegalArgumentException: Rewrite first!
at
org.apache.lucene.search.spans.SpanMultiTermQueryWrapper.createWeight(SpanMultiTermQueryWrapper.java:99)
at
org.apache.lucene.search.spans.SpanNearQuery.createWeight(SpanNearQuery.java:183)
at
org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extractWeightedSpanTerms(WeightedSpanTermExtractor.java:295)
...
{code}
This stacktrace is not from 8.11.1 code but the general logic is that at line
293 rewrite was called (except it didn't a full rewrite because of
{{SpanBoostQuery}} wrapping around the {{{}SpanNearQuery{}}}) and so then at
line 295 the {{IllegalArgumentException("Rewrite first!")}} arises:
[https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.11.1/lucene/core/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java#L101]
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]