[
https://issues.apache.org/jira/browse/LUCENE-8492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16662306#comment-16662306
]
David Smiley commented on LUCENE-8492:
--------------------------------------
Maybe the UH should actually rewrite the Query up front _if and only if_ the
UH's attempt to detect terms/automata etc. found nothing? Hmmm but its
potentially expensive since it'd use the real underlying index, and the query
might contain a MTQ. And the reason we found nothing may be because we only
want to highlight some fields that just so happened to not be in the query. I
suppose it should not do this but I wanted to record my thinking here. Maybe
it'd be nice if the UH had a HighlightFlag option to avoid
OffsetSource.NONE_NEEDED and instead assume the query might have anything. But
that isn't terribly needed since the user could subclass to override
getOptimizedOffsetSource to never return NONE_NEEDED.
Other than SurroundQParser, I wonder if any real-world users have queries that
run into this?
> UnifiedHighlighter does not work with Surround query parser (SurroundQParser)
> -----------------------------------------------------------------------------
>
> Key: LUCENE-8492
> URL: https://issues.apache.org/jira/browse/LUCENE-8492
> Project: Lucene - Core
> Issue Type: Bug
> Components: modules/highlighter
> Affects Versions: 7.2.1
> Reporter: Andy Liu
> Priority: Major
> Attachments: TestUnifiedHighlighterSurround.java
>
>
> I'm attempting to use the UnifiedHighlighter in conjunction with queries
> parsed by Solr's SurroundQParserPlugin. When doing so, the response yields
> empty arrays for documents that should contain highlighted snippets.
> I've attached a test for UnifiedHighlighter that uses the surround's
> QueryParser and preprocesses the query in a similar fashion as
> SurroundQParser, which results in test failure. When creating a SpanQuery
> directly (rather via surround's QueryParser), the test passes.
> The problem can be isolated to the code path initiated by
> UnifiedHighlighter.extractTerms(), which uses EMPTY_INDEXSEARCHER to extract
> terms from the query. After a series of method calls, we end up at
> DistanceQuery.getSpanNearQuery(), where
> {{((DistanceSubQuery)sqi.next()).addSpanQueries(sncf)}} fails silently and
> doesn't add any span queries.
> Another data point: If I hack UnifiedHighlighter and pass in a live
> IndexSearcher to extractTerms(), highlighting works.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]