You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by mk...@apache.org on 2022/09/15 15:24:43 UTC

[solr] branch branch_9x updated: SOLR-7883: /mlt handler to support facets (#1010) (#1015)

This is an automated email from the ASF dual-hosted git repository.

mkhl 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 3aaa4481666 SOLR-7883: /mlt handler to support facets (#1010) (#1015)
3aaa4481666 is described below

commit 3aaa44816666333bc907636809fc2ed20c5e915c
Author: Mikhail Khludnev <mk...@users.noreply.github.com>
AuthorDate: Thu Sep 15 18:24:38 2022 +0300

    SOLR-7883: /mlt handler to support facets (#1010) (#1015)
    
    * SOLR-7883: /mlt handler to support facets
---
 solr/CHANGES.txt                                               |  2 ++
 .../src/java/org/apache/solr/handler/MoreLikeThisHandler.java  |  6 +++++-
 .../test/org/apache/solr/handler/MoreLikeThisHandlerTest.java  | 10 ++++++++++
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 6cde9ec14a9..d0ddb6401ab 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -119,6 +119,8 @@ Bug Fixes
 
 * SOLR-16343: Handle MDC snapshot being null (Dee Moore via Kevin Risden)
 
+* SOLR-7883: MoreLikeThisHandler to support facets (Mikhail Khludnev)
+
 Other Changes
 ---------------------
 * SOLR-16351: Upgrade Carrot2 to 4.4.3, upgrade randomizedtesting to 2.8.0. (Dawid Weiss)
diff --git a/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java b/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java
index 51271492afe..84c30320425 100644
--- a/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java
@@ -48,6 +48,7 @@ import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.ContentStream;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.handler.component.FacetComponent;
+import org.apache.solr.handler.component.ResponseBuilder;
 import org.apache.solr.request.SimpleFacets;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
@@ -215,7 +216,10 @@ public class MoreLikeThisHandler extends RequestHandlerBase {
         if (mltDocs.docSet == null) {
           rsp.add("facet_counts", null);
         } else {
-          SimpleFacets f = new SimpleFacets(req, mltDocs.docSet, params);
+          final ResponseBuilder responseBuilder =
+              new ResponseBuilder(req, rsp, Collections.emptyList());
+          SimpleFacets f = new SimpleFacets(req, mltDocs.docSet, params, responseBuilder);
+          FacetComponent.FacetContext.initContext(responseBuilder);
           rsp.add("facet_counts", FacetComponent.getFacetCounts(f));
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/handler/MoreLikeThisHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/MoreLikeThisHandlerTest.java
index 2f33c4658c7..c218b08938e 100644
--- a/solr/core/src/test/org/apache/solr/handler/MoreLikeThisHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/MoreLikeThisHandlerTest.java
@@ -25,6 +25,7 @@ import org.apache.solr.common.params.MoreLikeThisParams;
 import org.apache.solr.common.util.ContentStream;
 import org.apache.solr.common.util.ContentStreamBase;
 import org.apache.solr.core.SolrCore;
+import org.apache.solr.handler.component.FacetComponent;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequestBase;
@@ -236,6 +237,15 @@ public class MoreLikeThisHandlerTest extends SolrTestCaseJ4 {
           "//result/doc[1]/str[@name='id'][.='45']",
           "//lst[@name='debug']/lst[@name='explain']");
     }
+
+    params.set(FacetComponent.COMPONENT_NAME, "true");
+    params.set("facet.field", "name");
+    try (SolrQueryRequest mltreq = new LocalSolrQueryRequest(core, params)) {
+      assertQ(
+          mltreq,
+          "//result/doc[1]/str[@name='id'][.='45']",
+          "//lst[@name='facet_counts']/lst[@name='facet_fields']/lst[@name='name']/int[@name='George'][.='1']");
+    }
   }
 
   @Test