Search 如何索引没有日期的日期&;apachesolr中的时间
在我的数据库中,日期类似于Search 如何索引没有日期的日期&;apachesolr中的时间,search,indexing,solr,lucene,solrj,Search,Indexing,Solr,Lucene,Solrj,在我的数据库中,日期类似于1973-01。它们存储为字符串值。如果我必须使用ApacheSolr对此进行索引,那么我将如何做呢 我在schema.xml中编写了以下内容: 我还更改了所有日期,如1973-01Z。但我仍然得到一个错误: org.apache.solr.common.SolrException:日期数学字符串中的日期无效:'1973-01Z' 我相信Solr只接受像1995-12-31T23:59:59Z这样的日期 有人可以帮忙吗?在solrconfig.xml中,您可以在Par
1973-01
。它们存储为字符串值。如果我必须使用ApacheSolr对此进行索引,那么我将如何做呢
我在schema.xml中编写了以下内容:
我还更改了所有日期,如1973-01Z
。但我仍然得到一个错误:
org.apache.solr.common.SolrException:日期数学字符串中的日期无效:'1973-01Z'
我相信Solr只接受像1995-12-31T23:59:59Z这样的日期
有人可以帮忙吗?在solrconfig.xml中,您可以在ParseDateFieldUpdateProcessorFactory的帮助下定义更新请求处理程序可以在updateRequestProcessorChain中处理的日期格式:
<updateRequestProcessorChain name="parse-field-types">
<processor class="solr.RemoveBlankFieldUpdateProcessorFactory"/>
<processor class="solr.ParseBooleanFieldUpdateProcessorFactory"/>
<processor class="solr.ParseLongFieldUpdateProcessorFactory"/>
<processor class="solr.ParseDoubleFieldUpdateProcessorFactory"/>
<processor class="solr.ParseDateFieldUpdateProcessorFactory">
<!-- A default time zone name or offset may optionally be specified for those
dates that don't include an explicit zone/offset.
-->
<str name="defaultTimeZone">Europe/Berlin</str>
<arr name="format">
<str>yyyy-MM-dd'T'HH:mm:ss.SSSZ</str>
<str>yyyy-MM-dd'T'HH:mm:ssZ</str>
<str>yyyy-MM-dd HH:mm:ss Z</str>
<str>yyyy-MM-dd HH:mm:ss</str>
<str>yyyy-MM-dd HH:mm:ss 'UTC</str>
</arr>
</processor>
<processor class="solr.LogUpdateProcessorFactory"/>
<processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>
欧洲/柏林
yyyy-MM-dd'HH:MM:ss.SSSZ
yyyy-MM-dd'HH:MM:ssZ
yyyy MM dd HH:MM:ss Z
yyyy MM dd HH:MM:ss
yyyy MM dd HH:MM:ss'UTC
然后,您必须将updateRequestProcessorChain与更新请求处理程序连接起来
<requestHandler name="/update" class="solr.UpdateRequestHandler">
<lst name="defaults">
<str name="update.chain">parse-field-types</str>
</lst>
</requestHandler>
解析字段类型
也许你可以在这里定义一种适合你的格式。你也可以使用
string
type而不是tdate
如果我这样做,那么我可以根据日期进行搜索或排序吗@赫克托科里亚