Я использую 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>
Кроме того, я вижу, что этот бин используется внутри 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>
Теперь, когда я пытаюсь опубликовать документ с использованием curl в формате yyyy-MM-dd
, как показано ниже ,
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
Может кто-нибудь помочь? Заранее спасибо.