You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by manju16832003 <ma...@gmail.com> on 2013/11/07 08:57:25 UTC

How to set default values for int fields

How do I set default value for int fields
ex

<field name="mileage" type="int" indexed="true" stored="true" 
multiValued="false" default=""/>

While indexing lets say if I have not set the value for mileage, and solr
tries to assign default value and it fails. Because *mileage* is of type int
not string. It throws following exception

3656198 [http-bio-8080-exec-4] ERROR
org.apache.solr.servlet.SolrDispatchFilter  –
null:java.lang.NumberFormatException: For input string: ""
	at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:493)
	at java.lang.Integer.parseInt(Integer.java:514)
	at org.apache.solr.schema.TrieField.createField(TrieField.java:592)
	at org.apache.solr.schema.TrieField.createFields(TrieField.java:655)
	at
org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:186)
	at
org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:324)
	at
org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73)
	at
org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:208)
	at
org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
	at
org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
	at
org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:519)
	at
org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:655)
	at
org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:398)
	at
org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:100)
	at
org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:246)
	at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173)
	at
org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
	at
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
	at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1820)
	at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:656)
	at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:359)
	at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:679)

Also if I were to set default values for sting fields, it would be
*default="null" and not null*.

is there way to set default value of the field to *null instead of "null"*

is there any solution?



--
View this message in context: http://lucene.472066.n3.nabble.com/How-to-set-default-values-for-int-fields-tp4099741.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: How to set default values for int fields

Posted by manju16832003 <ma...@gmail.com>.
Erick,
Thanks for replying :-).
If I were to do that, we are trying to set string value to int and Solr
throws an error.
 
<field name="mileage" type="int" indexed="true" stored="true"
multiValued="false" default="5"/>

Oh wait, I guess it works because Solr would automatically parse based on
the data type of the field. :-).
As I could see from the exception

java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
>         *at java.lang.Integer.parseInt(Integer.java:493) *
>         at java.lang.Integer.parseInt(Integer.java:514) 
>         at
> org.apache.solr.schema.TrieField.createField(TrieField.java:592) 

Thanks for the answer. I will test it as soon as I could reproduce the issue
again

 




--
View this message in context: http://lucene.472066.n3.nabble.com/How-to-set-default-values-to-int-fields-tp4099741p4099934.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: How to set default values for int fields

Posted by Erick Erickson <er...@gmail.com>.
Uhhhh, put a valid number in your default, not the empty string? LIke
default="5"

Best,
Erick


On Thu, Nov 7, 2013 at 2:57 AM, manju16832003 <ma...@gmail.com>wrote:

> How do I set default value for int fields
> ex
>
> <field name="mileage" type="int" indexed="true" stored="true"
> multiValued="false" default=""/>
>
> While indexing lets say if I have not set the value for mileage, and solr
> tries to assign default value and it fails. Because *mileage* is of type
> int
> not string. It throws following exception
>
> 3656198 [http-bio-8080-exec-4] ERROR
> org.apache.solr.servlet.SolrDispatchFilter  –
> null:java.lang.NumberFormatException: For input string: ""
>         at
>
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
>         at java.lang.Integer.parseInt(Integer.java:493)
>         at java.lang.Integer.parseInt(Integer.java:514)
>         at org.apache.solr.schema.TrieField.createField(TrieField.java:592)
>         at
> org.apache.solr.schema.TrieField.createFields(TrieField.java:655)
>         at
> org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:186)
>         at
> org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:324)
>         at
>
> org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73)
>         at
>
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:208)
>         at
>
> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
>         at
>
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>         at
>
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:519)
>         at
>
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:655)
>         at
>
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:398)
>         at
>
> org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:100)
>         at
> org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:246)
>         at
> org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173)
>         at
>
> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
>         at
>
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
>         at
>
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
>         at org.apache.solr.core.SolrCore.execute(SolrCore.java:1820)
>         at
>
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:656)
>         at
>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:359)
>         at
>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
>         at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>         at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
>         at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>         at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
>         at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>         at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>         at
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
>         at
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
>         at
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:679)
>
> Also if I were to set default values for sting fields, it would be
> *default="null" and not null*.
>
> is there way to set default value of the field to *null instead of "null"*
>
> is there any solution?
>
>
>
> --
> View this message in context:
> http://lucene.472066.n3.nabble.com/How-to-set-default-values-for-int-fields-tp4099741.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>