solr - 如何在 Solr 中指定日期方面查询?

标签 solr

当我对 Solr 进行查询时,我得到了这些 facet_counts:

'facet_counts' => {
    'facet_dates' => {
        'photo_added' => {
            '2009-12-28T18:00:00Z' => 396386,
            '2010-05-28T18:00:00Z' => 415370,
            'gap' => '+1MONTH',
            'end' => '2011-02-28T18:00:00Z',
        },
    },
},

但是,当我将这些参数中的任何一个 添加到q=*:* 查询时:

fq=photo_added:2009-12-28T18:00:00Z
fq=photo_added:2009-12-28T18%3A00%3A00Z

我收到这样的回复:

HTTP ERROR 400: Invalid Date String:'2009-12-28T18'

当我将任何一个 这些 参数添加到q=*:* 查询时:

fq=photo_added:"2009-12-28T18:00:00Z"
fq=photo_added:"2009-12-28T18%3A00%3A00Z"
fq%3Dphoto_added%3A%222009-12-28T18%3A00%3A00Z%22
fq=photo_added%3A"2009-12-28T18%3A00%3A00Z"

我在回复中收到了这个:

<result name="response" numFound="0" start="0"/>

但是当我的查询没有 fq= 约束时,我得到 numFound="8001000",所以 肯定有问题fq= 约束。

如何进行有效的日期分面查询?

最佳答案

我认为您误解了日期方面的结果。 IIRC,因为你定义了 1 个月的间隔,结果 '2009-12-28T18:00:00Z' => 396386 意味着在 2009-12-28T18:00:00Z 和 2010-01 之间-28T18:00:00Z(一个月)有396386条结果。

但是随后您使用确切 日期运行过滤器查询,但您没有得到任何结果,因为没有文档完全匹配该日期和时间。如果你想获取这 396386 个文件,运行一个过滤查询,范围在我上面提到的日期之间:fq=photo_added:[2009-12-28T18:00:00Z TO 2010-01-28T18:00:00Z ]

关于solr - 如何在 Solr 中指定日期方面查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4857211/

相关文章:

java - SLF4J 记录到文件与 DB 与 Solr

solr - 有没有一种方法可以使用 lucene 根据搜索查询发现单词的相关性

indexing - SOLRJ-6.0.0 : Insertion of a bean object which associate list of bean object is giving null pointer exception

solr - 配置SOLR以查找文档(如果文档中使用了复数,并且搜索文本中使用了单数)?

Solr 4.0 的 PHP 库/客户端

solr - 在 solr dih 中,在一个位置导入两个双倍

ruby-on-rails - Sunspot Solr Rails - 使用 'with' 搜索多个模型

search - 使用 Solr 的 log4j 日志索引

elasticsearch - 如何索引html内容,保持位置(如xpath,css选择器等)

SOLR短语查询