Solr无法以UTC格式保存时间

时间:2011-03-01 01:34:56

标签: solr

如果我定义了Solr.DateField类型的字段,我读SOLR总是将其保存在GMT中。但我发现SOLR只需要花费在我的数据库中定义的时间并在没有转换的情况下编写它。

是否有任何配置参数?

5 个答案:

答案 0 :(得分:6)

据我所知,SOLR将接受的唯一日期格式为:

YYYY-MM-DDTHH:MM:SS.000Z(Z很重要!)

答案 1 :(得分:1)

在我的情况下,我们的服务器设置为非UTC时间。当solr从数据库中检索一行时,它会自动将该时间转换为UTC。

问题是存储在DB 中的数据已经是UTC。但是因为当solr拉出那个数据时,它会再次转换为UTC ....

为我们的目的(在我看来)正确的方法是将服务器设置为UTC时区...但是,这会弄乱整个服务器场...我不做操作,我做不知道后果。无论如何,我正试图在我的代码中找到解决这个问题的方法。

答案 2 :(得分:1)

正如Mauricio Scheffer所说,SOLR并不关心时区,这令人沮丧。

BUT!如果您具有非UTC时间,则在索引值时知道时区,您可以在SOLR更新中将其转换为UTC:

“2013-02-07T11:21:51Z + 8HOUR”

这看起来有点奇怪,但在PST时间戳中添加“Z + 8HOUR”会将其转换为UTC中的正确值。通常,您可以在为时间戳编制索引时使用任何DateMath修饰符。

答案 3 :(得分:0)

据我所知,Solr在您提供日期完全时,忽略任何时区信息。由你来转换为UTC。 Here's a forum thread that confirms this

例如,here are some conversion routines for PHP

答案 4 :(得分:0)

好的我发现我给SOLR的日期没有设置时区,在这种情况下它默认为机器设置的任何时区。