【问题标题】:Solr: how to index date and timeSolr:如何索引日期和时间
【发布时间】:2018-03-15 10:31:14
【问题描述】:

我有 Solr 7.2.1,在我的 managed-schema.xml 文件中我有一个字段,它代表“pDate”类型的日期对象。

现在我还需要索引一天中的时间,但我发现我无法使用“pDate”字段类型搜索时间。如果我查询 solr 搜索 my_date_field:[2018-03-12T00:00:00.000Z TO *] 它可以工作;相反,如果我搜索 [2018-03-12T12:00:00.000Z TO *] 我找不到任何结果。

那么,基本上,用什么类型来实现这一点更好?字段类型是问题的根源吗?

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    Solr 参考指南说:“Solr 的日期字段(DatePointField、DateRangeField 和已弃用的 TrieDateField)将“日期”表示为毫秒精度的时间点。”因此,该领域不能成为您问题的根源。

    检查格式“12/03/2018T12:00:00.000Z”。是真的正确吗?我只知道格式为“2018-03-12T12:00:00.000Z”的日期。看这里Date Formatting

    还可以在 Solr Admin UI 中找到该文档并检查 JSON 响应。 my_date_field 的值是多少?

    【讨论】:

    • 是的,我的问题有误。我输入的是“/”字符,但在我的代码中我正确使用了“-”。
    • 所以检查实际存储在文档的 my_date_field 中的值。也许它不是你所期望的。
    • 12-03-2018 仍然不正确。必须是 2018 年 3 月 12 日。
    • 我发现了问题,我的 solr 安装在 CET 时区,而不是 UTC,它会自动从我的数据源日期中减去 1 小时。但是,如果我将它放在 UTC,那么执行时间和增量查询会出现问题吗?
    • 你设置了 $SOLR_TIMEZONE 吗?
    【解决方案2】:

    我找到了解决方案, 我必须在“solr.in”配置文件中设置 $SOLR_TIMEZONE 变量,但对我来说正确的值不是“CEST”而是“Europe/Rome”

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 2023-03-28
      • 1970-01-01
      • 2013-01-16
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      相关资源
      最近更新 更多