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");