You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ko...@apache.org on 2009/05/04 13:35:01 UTC

svn commit: r771270 - in /lucene/solr/trunk: CHANGES.txt src/java/org/apache/solr/handler/admin/LukeRequestHandler.java src/java/org/apache/solr/schema/IndexSchema.java src/test/org/apache/solr/schema/IndexSchemaTest.java

Author: koji
Date: Mon May  4 11:35:01 2009
New Revision: 771270

URL: http://svn.apache.org/viewvc?rev=771270&view=rev
Log:
SOLR-929: LukeRequestHandler should return "dynamicBase" only if the field is dynamic.

Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
    lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java
    lucene/solr/trunk/src/test/org/apache/solr/schema/IndexSchemaTest.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=771270&r1=771269&r2=771270&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Mon May  4 11:35:01 2009
@@ -356,6 +356,9 @@
 
 42. SOLR-1138: Query Elevation Component now gracefully handles missing queries. (gsingers)
 
+43. SOLR-929: LukeRequestHandler should return "dynamicBase" only if the field is dynamic.
+    (Peter Wolanin, koji)
+
 Other Changes
 ----------------------
  1. Upgraded to Lucene 2.4.0 (yonik)

Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=771270&r1=771269&r2=771270&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Mon May  4 11:35:01 2009
@@ -300,7 +300,7 @@
 
       f.add( "type", (ftype==null)?null:ftype.getTypeName() );
       f.add( "schema", getFieldFlags( sfield ) );
-      if (sfield != null && schema.getDynamicPattern(sfield.getName()) != null) {
+      if (sfield != null && schema.isDynamicField(sfield.getName()) && schema.getDynamicPattern(sfield.getName()) != null) {
     	  f.add("dynamicBase", schema.getDynamicPattern(sfield.getName()));
       }
 

Modified: lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java?rev=771270&r1=771269&r2=771270&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java Mon May  4 11:35:01 2009
@@ -1014,6 +1014,23 @@
   }
 
   /**
+   * Is the specified field dynamic or not.
+   * @param fieldName
+   * @return true if the specified field is dynamic
+   */
+  public boolean isDynamicField(String fieldName) {
+    if(fields.containsKey(fieldName)) {
+      return false;
+    }
+
+    for (DynamicField df : dynamicFields) {
+      if (df.matches(fieldName)) return true;
+    }
+
+    return false;
+  }
+  
+  /**
    * Returns the SchemaField that should be used for the specified field name, or
    * null if none exists.
    *

Modified: lucene/solr/trunk/src/test/org/apache/solr/schema/IndexSchemaTest.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/schema/IndexSchemaTest.java?rev=771270&r1=771269&r2=771270&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/schema/IndexSchemaTest.java (original)
+++ lucene/solr/trunk/src/test/org/apache/solr/schema/IndexSchemaTest.java Mon May  4 11:35:01 2009
@@ -129,4 +129,12 @@
             ,"//result/doc[1]/int[@name='id'][.='10']"
             );
   }
+  
+  public void testIsDynamicField() throws Exception {
+    SolrCore core = h.getCore();
+    IndexSchema schema = core.getSchema();
+    assertFalse( schema.isDynamicField( "id" ) );
+    assertTrue( schema.isDynamicField( "aaa_i" ) );
+    assertFalse( schema.isDynamicField( "no_such_field" ) );
+  }
 }