You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2012/09/06 19:22:49 UTC
svn commit: r1381685 - in /lucene/dev/trunk/solr: ./
core/src/java/org/apache/solr/handler/admin/
core/src/test-files/solr/collection1/conf/
core/src/test/org/apache/solr/handler/admin/
Author: hossman
Date: Thu Sep 6 17:22:48 2012
New Revision: 1381685
URL: http://svn.apache.org/viewvc?rev=1381685&view=rev
Log:
SOLR-3795: Fixed LukeRequestHandler response to correctly return field name strings in copyDests and copySources arrays
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/schema12.xml
lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1381685&r1=1381684&r2=1381685&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Thu Sep 6 17:22:48 2012
@@ -131,6 +131,9 @@ Bug Fixes
* SOLR-3679: Core Admin UI gives no feedback if "Add Core" fails (steffkes, hossman)
+* SOLR-3795: Fixed LukeRequestHandler response to correctly return field name
+ strings in copyDests and copySources arrays (hossman)
+
Other Changes
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=1381685&r1=1381684&r2=1381685&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Thu Sep 6 17:22:48 2012
@@ -53,6 +53,7 @@ import org.apache.solr.schema.FieldType;
import org.apache.solr.update.SolrIndexWriter;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
+import org.apache.solr.schema.CopyField;
import org.apache.solr.search.SolrIndexSearcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -522,8 +523,8 @@ public class LukeRequestHandler extends
if (ft.getAnalyzer().getPositionIncrementGap(f.getName()) != 0) {
field.add("positionIncrementGap", ft.getAnalyzer().getPositionIncrementGap(f.getName()));
}
- field.add("copyDests", schema.getCopyFieldsList(f.getName()));
- field.add("copySources", schema.getCopySources(f.getName()));
+ field.add("copyDests", toListOfStringDests(schema.getCopyFieldsList(f.getName())));
+ field.add("copySources", toListOfStrings(schema.getCopySources(f.getName())));
fields.put( f.getName(), field );
@@ -617,6 +618,22 @@ public class LukeRequestHandler extends
// Add a histogram
fieldMap.add("histogram", tiq.histogram.toNamedList());
}
+
+ private static List<String> toListOfStrings(SchemaField[] raw) {
+ List<String> result = new ArrayList<String>(raw.length);
+ for (SchemaField f : raw) {
+ result.add(f.getName());
+ }
+ return result;
+ }
+ private static List<String> toListOfStringDests(List<CopyField> raw) {
+ List<String> result = new ArrayList<String>(raw.size());
+ for (CopyField f : raw) {
+ result.add(f.getDestination().getName());
+ }
+ return result;
+ }
+
//////////////////////// SolrInfoMBeans methods //////////////////////
@Override
Modified: lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/schema12.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/schema12.xml?rev=1381685&r1=1381684&r2=1381685&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/schema12.xml (original)
+++ lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/schema12.xml Thu Sep 6 17:22:48 2012
@@ -591,6 +591,10 @@
<dynamicField name="random_*" type="random" />
+ <!-- unused, for testing luke copyFields -->
+ <dynamicField name="foo_copysource_*" type="ignored" multiValued="true"/>
+ <dynamicField name="bar_copydest_*" type="ignored" multiValued="true"/>
+
</fields>
<defaultSearchField>text</defaultSearchField>
@@ -601,5 +605,7 @@
<copyField source="title" dest="text"/>
<copyField source="subject" dest="text"/>
+
+ <copyField source="foo_copysource_*" dest="bar_copydest_*" />
</schema>
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java?rev=1381685&r1=1381684&r2=1381685&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java Thu Sep 6 17:22:48 2012
@@ -146,7 +146,12 @@ public class LukeRequestHandlerTest exte
private static String getFieldXPathPrefix(String field) {
return "//lst[@name='fields']/lst[@name='"+field+"']/str";
}
-
+ private static String field(String field) {
+ return "//lst[@name='fields']/lst[@name='"+field+"']/";
+ }
+ private static String dynfield(String field) {
+ return "//lst[@name='dynamicFields']/lst[@name='"+field+"']/";
+ }
@Test
public void testFlParam() {
SolrQueryRequest req = req("qt", "/admin/luke", "fl", "solr_t solr_s", "show", "all");
@@ -179,4 +184,21 @@ public class LukeRequestHandlerTest exte
fail("Caught unexpected exception " + e.getMessage());
}
}
+
+ public void testCopyFieldLists() throws Exception {
+ SolrQueryRequest req = req("qt", "/admin/luke", "show", "schema");
+
+ String xml = h.query(req);
+ String r = h.validateXPath
+ (xml,
+ field("text") + "/arr[@name='copySources']/str[.='title']",
+ field("text") + "/arr[@name='copySources']/str[.='subject']",
+ field("title") + "/arr[@name='copyDests']/str[.='text']",
+ field("title") + "/arr[@name='copyDests']/str[.='title_stemmed']",
+ // :TODO: SOLR-3798
+ //dynfield("bar_copydest_*") + "/arr[@name='copySource']/str[.='foo_copysource_*']",
+ dynfield("foo_copysource_*") + "/arr[@name='copyDests']/str[.='bar_copydest_*']");
+ assertEquals(xml, null, r);
+ }
+
}