Solr索引:日期字段,(空)没有值

时间:2011-09-08 00:50:04

标签: solr field

我的SOlr模式中有以下字段定义

name="DvdReleaseDate"   type="date "  stored="true" required="false"

我的输入xml文件包含带DVDReleaseDate的电影名称。所以对于全新版本,此字段为空(aka null) 现在当我编制索引时,SOLR抛出了空值异常。

我的其他选择是什么?

基本上,我需要支持基于DVD发布日期和时间的查询。同时,空值是有效的用例。

根据反馈编辑我的问题:

我在solr架构中有以下内容

field name =“dvdReleaseDate”type =“date”stored =“true”required =“false”

异常详情

HTTP错误400 访问solr更新时出现问题。 原因:日期字符串无效:''

Sep 8, 2011 9:14:22 AM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: Invalid Date String:''
   at org.apache.solr.schema.DateField.parseMath(DateField.java:165)

    at org.apache.solr.schema.TrieDateField.createField(TrieDateField.java:169)
    at org.apache.solr.schema.SchemaField.createField(SchemaField.java:98)
    at org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:204)
    at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:277)
    at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:60)
    at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:147)
    at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:77)
    at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:55)
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
    at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
    at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)

1 个答案:

答案 0 :(得分:7)

在没有dvdReleaseDate的情况下添加文档时,请勿在XML文档中包含该字段。 例如。而不是:

<add>
  <doc>
    <field name="id">123</field>
    <field name="dvdReleaseDate"></field>
  </doc>
</add>

做的:

<add>
  <doc>
    <field name="id">123</field>
  </doc>
</add>