【问题标题】:Solr: Invalid Date String:'1996'Solr:无效的日期字符串:'1996'
【发布时间】:2016-11-04 06:01:27
【问题描述】:

我是 Solr 的新手。我在我的 solr(5.1.1) 中索引了一些数据。我的数据有像 contract_year 这样的字段,其值如下:

contract year: 1996
contract year: 2000

合约年份的字段类型为“int”。我想将字段类型更改为“日期”或“tdate”,只需 year 。为此,我编辑了我的 schema.xml 并将合同年份的字段类型从 "int" 更改为 "date"。这样做并重新索引我的数据后,我收到了这个错误:

Invalid Date String:'1996'

我应该怎么做才能将字段类型更改为“日期”并获得相同的结果

contract year: 1996

不改变日期的格式。我只想从日期获得年份(yyyy)。 感谢您的帮助

【问题讨论】:

    标签: solr


    【解决方案1】:

    Nupur,Solr date 字段支持的唯一格式是 yyyy-MM-dd'T'HH:mm:ss'Z' 这样的格式。因此,您必须将日期转换为这样的格式才能被 Apache Solr 接受。

    【讨论】:

    • 我应该如何将“yyyy”格式转换为“yyyy-MM-dd'T'HH:mm:ss'Z'”?
    • 看看你是不是只过了一年,然后在普通字段而不是日期字段中传递。是的,将年份值转换为成熟的日期格式几乎没有任何意义。只是不要使用像 text_general 字段这样的日期字段来将其存储为字符串。但是如果你想过滤年份范围,那么你可能需要重新考虑!
    • 请使用 int 字段而不是 text_general 或 strfield - 这样范围查询将按应有的方式工作,而不会突然出现任何意外:-)
    • 可以通过重用无模式配置中的日期解析器组件并将更新请求处理器链配置为包含该解析器以及查看特定指令的指令来将数字解析为日期仅限字段(不自动创建字段)。但我不记得 Solr 5.1 中是否已经提供无模式。
    猜你喜欢
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 2019-04-06
    • 2013-04-03
    • 2021-04-26
    • 2016-02-20
    • 2015-07-23
    相关资源
    最近更新 更多