You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mu...@apache.org on 2019/08/05 04:53:38 UTC
[lucene-solr] branch master updated: SOLR-13679:Fix default style
of [explain] registered in solrconfig.xml
This is an automated email from the ASF dual-hosted git repository.
munendrasn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/master by this push:
new 84a62a5 SOLR-13679:Fix default style of [explain] registered in solrconfig.xml
84a62a5 is described below
commit 84a62a5d873516686c8d04529f37175af2fb7be0
Author: Munendra S N <mu...@apache.org>
AuthorDate: Mon Aug 5 10:04:15 2019 +0530
SOLR-13679:Fix default style of [explain] registered in solrconfig.xml
---
solr/CHANGES.txt | 3 +
.../transform/ExplainAugmenterFactory.java | 17 ++---
.../solr/collection1/conf/solrconfig.xml | 10 ++-
.../transform/TestExplainDocTransformer.java | 75 ++++++++++++++++++++++
4 files changed, 91 insertions(+), 14 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 99c81b9..d95df05 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -143,6 +143,9 @@ Other Changes
* SOLR-13659: Refactor CacheConfig to lazily load the the implementation class (noble)
+* SOLR-13679: Default style of ExplainDocTransformer registered via solrconfig.xml should be same as default style
+ of ExplainDocTransformer registered in defaultFactories (Munendra S N)
+
================== 8.2.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java b/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java
index 4222da4..bab9f03 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java
@@ -33,13 +33,13 @@ import org.apache.solr.util.SolrPluginUtils;
*/
public class ExplainAugmenterFactory extends TransformerFactory
{
- public static enum Style {
+ public enum Style {
nl,
text,
html
- };
+ }
- protected Style defaultStyle = null;
+ protected Style defaultStyle = Style.text;
@Override
public void init(NamedList args) {
@@ -47,13 +47,9 @@ public class ExplainAugmenterFactory extends TransformerFactory
if( defaultUserArgs != null ) {
defaultStyle = getStyle( defaultUserArgs );
}
- else {
- defaultStyle = Style.nl;
- }
}
- public static Style getStyle( String str )
- {
+ public static Style getStyle( String str ) {
try {
return Style.valueOf( str );
}
@@ -66,7 +62,7 @@ public class ExplainAugmenterFactory extends TransformerFactory
@Override
public DocTransformer create(String field, SolrParams params, SolrQueryRequest req) {
String s = params.get("style");
- Style style = (s==null)?defaultStyle:getStyle(s);
+ Style style = (s == null) ? defaultStyle : getStyle(s);
return new ExplainAugmenter( field, style );
}
@@ -123,6 +119,3 @@ public class ExplainAugmenterFactory extends TransformerFactory
}
}
}
-
-
-
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml
index c68e7e0..97b31ad 100644
--- a/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml
@@ -560,8 +560,14 @@
<str name="df">text</str>
</lst>
</initParams>
-
-
+
+ <transformer name="explain1" class="org.apache.solr.response.transform.ExplainAugmenterFactory" />
+ <transformer name="explainText" class="org.apache.solr.response.transform.ExplainAugmenterFactory" >
+ <str name="args">text</str>
+ </transformer>
+ <transformer name="explainNL" class="org.apache.solr.response.transform.ExplainAugmenterFactory" >
+ <str name="args">nl</str>
+ </transformer>
</config>
diff --git a/solr/core/src/test/org/apache/solr/response/transform/TestExplainDocTransformer.java b/solr/core/src/test/org/apache/solr/response/transform/TestExplainDocTransformer.java
new file mode 100644
index 0000000..39c7ca3
--- /dev/null
+++ b/solr/core/src/test/org/apache/solr/response/transform/TestExplainDocTransformer.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.response.transform;
+
+
+import org.apache.solr.SolrTestCaseJ4;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class TestExplainDocTransformer extends SolrTestCaseJ4 {
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ initCore("solrconfig.xml","schema.xml");
+
+ assertU(add(doc("id", "1", "name_s", "john", "title_s", "Director", "dept_s","Engineering",
+ "text_t","These guys develop stuff")));
+ assertU(add(doc("id", "2", "name_s", "mark", "title_s", "VP", "dept_s","Marketing",
+ "text_t","These guys make you look good")));
+ assertU(add(doc("id", "3", "name_s", "nancy", "title_s", "MTS", "dept_s","Sales",
+ "text_t","These guys sell stuff")));
+ assertU(add(doc("id", "4", "name_s", "dave", "title_s", "MTS", "dept_s","Support",
+ "text_t","These guys help customers")));
+ assertU(add(doc("id", "5", "name_s", "tina", "title_s", "VP", "dept_s","Engineering",
+ "text_t","These guys develop stuff")));
+ assertU(commit());
+ }
+
+ @After
+ public void cleanup() throws Exception {
+ assertU(delQ("*:*"));
+ assertU(commit());
+ }
+
+ @Test
+ public void testStyle() throws Exception {
+ // this doesn't validate the explain response but checks if explain response is returned in expected format
+
+ // when not style is passed then default style should be used
+ assertQ(req("q", "*:*", "fl", "id,[explain]"), "//result/doc[1]/str[@name='id'][.='1']",
+ "boolean(//result/doc[1]/str[@name='[explain]'])");
+
+ // doc transformer defined in solrconfig without style
+ assertQ(req("q", "*:*", "fl", "id,[explain1]"), "//result/doc[1]/str[@name='id'][.='1']",
+ "boolean(//result/doc[1]/str[@name='[explain1]'])");
+
+ // doc transformer defined in solrconfig with style=nl
+ assertQ(req("q", "*:*", "fl", "id,[explainNL]"), "//result/doc[1]/str[@name='id'][.='1']",
+ "boolean(//result/doc[1]/lst[@name='[explainNL]'])");
+
+ // doc transformer defined in solrconfig with style=nl
+ assertQ(req("q", "*:*", "fl", "id,[explainText]"), "//result/doc[1]/str[@name='id'][.='1']",
+ "boolean(//result/doc[1]/str[@name='[explainText]'])");
+
+ // passing style as parameter at runtime
+ assertQ(req("q", "*:*", "fl", "id,[explainText style=nl]"), "//result/doc[1]/str[@name='id'][.='1']",
+ "boolean(//result/doc[1]/lst[@name='[explainText]'])");
+ }
+}