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);
+  }
+
 }