mirror of https://github.com/apache/lucene.git
DocumentBuilder needs to skip null values. This adds a test to make sure that happens.
http://www.nabble.com/indexing-null-values--tf4238702.html git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@564010 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e8533194c0
commit
06b56541a6
|
@ -188,8 +188,13 @@ public class DocumentBuilder {
|
||||||
SchemaField[] destArr = schema.getCopyFields(name);
|
SchemaField[] destArr = schema.getCopyFields(name);
|
||||||
|
|
||||||
// load each field value
|
// load each field value
|
||||||
|
boolean hasField = false;
|
||||||
for( Object v : field ) {
|
for( Object v : field ) {
|
||||||
|
if( v == null ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
String val = null;
|
String val = null;
|
||||||
|
hasField = true;
|
||||||
|
|
||||||
// TODO!!! HACK -- date conversion
|
// TODO!!! HACK -- date conversion
|
||||||
if( sfield != null && v instanceof Date && sfield.getType() instanceof DateField ) {
|
if( sfield != null && v instanceof Date && sfield.getType() instanceof DateField ) {
|
||||||
|
@ -232,7 +237,7 @@ public class DocumentBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure the field was used somehow...
|
// make sure the field was used somehow...
|
||||||
if( !used ) {
|
if( !used && hasField ) {
|
||||||
throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"ERROR:unknown field '" + name + "'");
|
throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"ERROR:unknown field '" + name + "'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
package org.apache.solr.update;
|
package org.apache.solr.update;
|
||||||
|
|
||||||
|
import org.apache.lucene.document.Document;
|
||||||
import org.apache.solr.common.SolrException;
|
import org.apache.solr.common.SolrException;
|
||||||
import org.apache.solr.common.SolrInputDocument;
|
import org.apache.solr.common.SolrInputDocument;
|
||||||
import org.apache.solr.core.SolrCore;
|
import org.apache.solr.core.SolrCore;
|
||||||
|
@ -47,4 +48,15 @@ public class DocumentBuilderTest extends AbstractSolrTestCase {
|
||||||
assertEquals( "should be bad request", 400, ex.code() );
|
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" ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue