StringIndexOutOfBoundsException in FastVectorHighlighter [LUCENE-9591]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
Just spotted this one. Solr throws the exception but the request is returned anyway. One highlighted snippet has garbled contents.
```java
2020-10-29 15:06:30.448 ERROR (qtp2119992687-25889) [c:collection_20200511 s:shard4 r:core_node48 x:sitesearch_20200511_shard4_replica_t47] o.a.s.s.HttpSolrCall null:java.lang.StringIndexOutOfBoundsException: start 568858, end 539731, length 539732
at java.base/java.lang.AbstractStringBuilder.checkRangeSIOOBE(AbstractStringBuilder.java:1724)
at java.base/java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:1017)
at java.base/java.lang.StringBuilder.substring(StringBuilder.java:85)
at org.apache.lucene.search.vectorhighlight.BaseFragmentsBuilder.getFragmentSourceMSO(BaseFragmentsBuilder.java:204)
at org.apache.lucene.search.vectorhighlight.BaseFragmentsBuilder.makeFragment(BaseFragmentsBuilder.java:175)
at org.apache.lucene.search.vectorhighlight.BaseFragmentsBuilder.createFragments(BaseFragmentsBuilder.java:144)
at org.apache.lucene.search.vectorhighlight.FastVectorHighlighter.getBestFragments(FastVectorHighlighter.java:186)
at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByFastVectorHighlighter(DefaultSolrHighlighter.java:581)
at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingOfField(DefaultSolrHighlighter.java:531)
at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:478)
at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:172)
```
---
Migrated from [LUCENE-9591](https://issues.apache.org/jira/browse/LUCENE-9591) by Markus Jelsma
Linked issues:
- #8073
Contributor guide
Research direction
Start by reading BaseFragmentsBuilder.getFragmentSourceMSO at the stack-trace location, then follow how FastVectorHighlighter reaches it and review linked issue #8073. Reproduce the reported request if possible; done means the StringIndexOutOfBoundsException no longer occurs and the highlighted snippet is not garbled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- search
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100