Solr不接受带有tdate(TrieDateField)字段的“ yyyy-MM-dd”日期格式

问题描述 投票:0回答:1

我正在使用Solr 7.7.2版本。我定义了一个名为date_test的字段,其类型为tdate(TrieDateField),如下所示{core}/conf/schema.xml文件中的内容

 <field name="date_test" type="tdate" docValues="true" indexed="true" stored="true" required="false" multiValued="true" />

{core}/conf/solrconfig.xml内部,我可以看到此处定义了此日期格式,

<updateProcessor class="solr.ParseDateFieldUpdateProcessorFactory" name="parse-date">
    <arr name="format">
      <str>yyyy-MM-dd'T'HH:mm:ss.SSSZ</str>
      <str>yyyy-MM-dd'T'HH:mm:ss,SSSZ</str>
      <str>yyyy-MM-dd'T'HH:mm:ss.SSS</str>
      <str>yyyy-MM-dd'T'HH:mm:ss,SSS</str>
      <str>yyyy-MM-dd'T'HH:mm:ssZ</str>
      <str>yyyy-MM-dd'T'HH:mm:ss</str>
      <str>yyyy-MM-dd'T'HH:mmZ</str>
      <str>yyyy-MM-dd'T'HH:mm</str>
      <str>yyyy-MM-dd HH:mm:ss.SSSZ</str>
      <str>yyyy-MM-dd HH:mm:ss,SSSZ</str>
      <str>yyyy-MM-dd HH:mm:ss.SSS</str>
      <str>yyyy-MM-dd HH:mm:ss,SSS</str>
      <str>yyyy-MM-dd HH:mm:ssZ</str>
      <str>yyyy-MM-dd HH:mm:ss</str>
      <str>yyyy-MM-dd HH:mmZ</str>
      <str>yyyy-MM-dd HH:mm</str>
      <str>yyyy-MM-dd</str>
    </arr>
  </updateProcessor>

此外,我可以看到此bean在updateRequestProcessorChain内部使用,如下所示,

<updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:false}"
           processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
    <processor class="solr.LogUpdateProcessorFactory"/>
    <processor class="solr.DistributedUpdateProcessorFactory"/>
    <processor class="solr.RunUpdateProcessorFactory"/>
  </updateRequestProcessorChain>

现在,当我尝试使用带有yyyy-MM-dd格式的curl如下发布文档时,

 curl -X POST -d '{"add":{ "doc":{"id":"delete.me1","messageid":"message.delete.me1","date_test":"2020-01-10"}}}' -H "Content-Type: application/json" http://{ip}:8983/solr/test-data/update?commit=true

这给我类似的错误

{
  "responseHeader":{
    "status":400,
    "QTime":4},
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","org.apache.solr.common.SolrException"],
    "msg":"ERROR: [doc=message.delete.me1] Error adding field 'date_test'='2020-01-10' msg=Invalid Date String:'2020-01-10'",
    "code":400}}

我试图理解为什么即使我们在ParseDateFieldUpdateProcessorFactory中定义了格式也不能接受这种格式

有人可以帮忙吗?预先感谢。

solr date-formatting date-parsing
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.