Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 按日期筛选时无法从Solr检索所需文档_Date_Solr - Fatal编程技术网

Date 按日期筛选时无法从Solr检索所需文档

Date 按日期筛选时无法从Solr检索所需文档,date,solr,Date,Solr,我实际上无法从Solr检索文档。我是这样提交的: <add> <doc> <field name="id">1</field> <field name="date_online">2012-02-09T19:46:00Z</field> </doc> </add> 在我提交文档并发布提交命令后,当我使用q=*:*和fq=date_online:[*到现在/分钟]搜索时,我无法

我实际上无法从Solr检索文档。我是这样提交的:

<add>
  <doc>
    <field name="id">1</field>
    <field name="date_online">2012-02-09T19:46:00Z</field>
  </doc>
</add>
在我提交文档并发布提交命令后,当我使用q=*:*和fq=date_online:[*到现在/分钟]搜索时,我无法检索我刚刚提交的文档。当然,日期肯定有问题,但我已经在服务器上检查了时间,并且是正确的,而且我还能够在本地重现问题


有人知道我为什么找不到那个文件吗?为什么它与我的查询不匹配?

问题当然是日期!我发现一个小时后就可以检索到文档了,所以我找到了答案。Solr使用UTC表示时间,我发送的是我的实际时区GMT+1的日期和时间,这就是为什么我只能在一小时后获得文档。事实上,在提交给Solr之前,需要将时间转换为UTC格式

比如说,格林尼治标准时间6点+1,Solr标准时间仅为UTC标准时间5点。如果您发送的文档中包含日期字段,例如2012-02-09T18:00:00Z,则该日期不包含有关Solr时区的任何信息,即UTC时间6点。如果你像我一样在那个日期筛选,你只会在一小时后看到那个文档。将文档发送到Solr之前,将日期转换为UTC 2012-02-09T17:00:00Z的正确方法

<field name="date_online" type="tdate" indexed="true" stored="false" />