Author: ryan Date: Wed Aug 8 13:23:36 2007 New Revision: 564010 URL: http://svn.apache.org/viewvc?view=rev&rev=564010 Log: DocumentBuilder needs to skip null values. This adds a test to make sure that happens.
http://www.nabble.com/indexing-null-values--tf4238702.html Modified: lucene/solr/trunk/src/java/org/apache/solr/update/DocumentBuilder.java lucene/solr/trunk/src/test/org/apache/solr/update/DocumentBuilderTest.java Modified: lucene/solr/trunk/src/java/org/apache/solr/update/DocumentBuilder.java URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/DocumentBuilder.java?view=diff&rev=564010&r1=564009&r2=564010 ============================================================================== --- lucene/solr/trunk/src/java/org/apache/solr/update/DocumentBuilder.java (original) +++ lucene/solr/trunk/src/java/org/apache/solr/update/DocumentBuilder.java Wed Aug 8 13:23:36 2007 @@ -188,8 +188,13 @@ SchemaField[] destArr = schema.getCopyFields(name); // load each field value + boolean hasField = false; for( Object v : field ) { + if( v == null ) { + continue; + } String val = null; + hasField = true; // TODO!!! HACK -- date conversion if( sfield != null && v instanceof Date && sfield.getType() instanceof DateField ) { @@ -232,7 +237,7 @@ } // make sure the field was used somehow... - if( !used ) { + if( !used && hasField ) { throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"ERROR:unknown field '" + name + "'"); } } Modified: lucene/solr/trunk/src/test/org/apache/solr/update/DocumentBuilderTest.java URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/update/DocumentBuilderTest.java?view=diff&rev=564010&r1=564009&r2=564010 ============================================================================== --- lucene/solr/trunk/src/test/org/apache/solr/update/DocumentBuilderTest.java (original) +++ lucene/solr/trunk/src/test/org/apache/solr/update/DocumentBuilderTest.java Wed Aug 8 13:23:36 2007 @@ -17,6 +17,7 @@ package org.apache.solr.update; +import org.apache.lucene.document.Document; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.core.SolrCore; @@ -46,5 +47,16 @@ catch( SolrException ex ) { assertEquals( "should be bad request", 400, ex.code() ); } + } + + public void testNullField() + { + SolrCore core = SolrCore.getSolrCore(); + + // make sure a null value is not indexed + SolrInputDocument doc = new SolrInputDocument(); + doc.addField( "name", null, 1.0f ); + Document out = DocumentBuilder.toDocument( doc, core.getSchema() ); + assertNull( out.get( "name" ) ); } }
