Индексирование Solr: поле даты без значения (пусто) - PullRequest
0 голосов
/ 08 сентября 2011

У меня есть следующее определение поля в моей схеме SOlr

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

Мой входной XML-файл содержит названия фильмов с DVDReleaseDate. Так что для совершенно новых выпусков это поле пустое (иначе ноль) Теперь, когда я индексирую, SOLR выдавал исключение пустого значения.

Какие у меня есть другие альтернативы?

В основном мне нужно поддерживать запросы на основе даты выпуска DVD, и в то же время пустые значения являются допустимым вариантом использования.

Редактирование моего вопроса на основе обратной связи:

У меня есть следующее в схеме solr

имя поля = "dvdReleaseDate" type = "date" сохранено = "true" обязательно = "false"

Сведения об исключении:

HTTP ERROR 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 Ответ

7 голосов
/ 08 сентября 2011

При добавлении документа без dvdReleaseDate не включайте поле в документ XML. Например. вместо:

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

сделать:

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