You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by cp...@apache.org on 2022/03/29 10:29:40 UTC
[solr] branch branch_9x updated: SOLR-16112: DefaultSolrHighlighter.doHighlighting to rewrite sufficiently (#756)
This is an automated email from the ASF dual-hosted git repository.
cpoerschke pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 4df4752 SOLR-16112: DefaultSolrHighlighter.doHighlighting to rewrite sufficiently (#756)
4df4752 is described below
commit 4df47520a7642e59131298e62171fec81086335d
Author: Christine Poerschke <cp...@apache.org>
AuthorDate: Tue Mar 29 11:13:40 2022 +0100
SOLR-16112: DefaultSolrHighlighter.doHighlighting to rewrite sufficiently (#756)
(cherry picked from commit 3bed330993f7fdac5fad77b74ef491c628a6db28)
---
solr/CHANGES.txt | 2 ++
.../apache/solr/highlight/DefaultSolrHighlighter.java | 5 +++--
.../test/org/apache/solr/highlight/HighlighterTest.java | 16 ++++++++++++++++
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 298092d..fd1e407 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -30,6 +30,8 @@ Bug Fixes
* SOLR-16089: Fix empty columns in Cloud Node UI Screen when replica is in down state. (hossman)
+* SOLR-16112: DefaultSolrHighlighter.doHighlighting to Query#rewrite multiple times if necessary. (Christine Poerschke)
+
Other Changes
---------------------
* SOLR-15897: Remove <jmx/> from all unit test solrconfig.xml files. (Eric Pugh)
diff --git a/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java b/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
index b7992aa..24974d2 100644
--- a/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
+++ b/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
@@ -453,11 +453,12 @@ public class DefaultSolrHighlighter extends SolrHighlighter implements PluginInf
&& !(Boolean.valueOf(params.get(HighlightParams.USE_PHRASE_HIGHLIGHTER, "true"))
&& Boolean.valueOf(params.get(HighlightParams.HIGHLIGHT_MULTI_TERM, "true")));
+ SolrIndexSearcher searcher = req.getSearcher();
+
if (rewrite) {
- query = query.rewrite(req.getSearcher().getIndexReader());
+ query = searcher.rewrite(query);
}
- SolrIndexSearcher searcher = req.getSearcher();
IndexSchema schema = searcher.getSchema();
// fetch unique key if one exists.
diff --git a/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java b/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java
index 5536d6a..1ccc8a7 100644
--- a/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java
+++ b/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java
@@ -845,6 +845,22 @@ public class HighlighterTest extends SolrTestCaseJ4 {
}
@Test
+ public void testPhraseHighlighterComplexPhrase() {
+ assertU(adoc("t_text", "abc hello xyz", "id", "1"));
+ assertU(commit());
+ assertU(optimize());
+
+ assertQ(
+ req(
+ "q", "{!complexphrase}t_text:\"hello*\"",
+ "hl", "true",
+ "hl.fl", "t_text",
+ "hl.usePhraseHighlighter", "false"),
+ "//lst[@name='highlighting']/lst[@name='1']",
+ "//lst[@name='1']/arr[@name='t_text']/str[.='abc <em>hello</em> xyz']");
+ }
+
+ @Test
public void testGetHighlightFields() {
HashMap<String, String> args = new HashMap<>();
args.put("fl", "id score");