如何比较solr中的日期?

时间:2014-12-02 18:39:08

标签: solr

我的架构有两个提交

<field name="startDate" type="date" indexed="true" stored="true"/>
<field name="endDate" type="date" indexed="true" stored="true"/>

我需要搜索&#34;当前时间&#34;在开始或结束日期之间。

查询是什么?

2 个答案:

答案 0 :(得分:0)

查询字符串,为清楚起见,没有转义,可能看起来像这样(使用lucene查询解析器语法):

?q=startDate:[* TO NOW]&endDate:[NOW TO *]

答案 1 :(得分:0)

引自https://wiki.apache.org/solr/SolrQuerySyntax

如果您使用Solr&#34; DateField&#34;类型,对这些字段的任何查询(通常是范围查询)应使用该字段支持的完整ISO 8601日期语法,或使用DateMath语法来获取相对日期。例子:

timestamp:[* TO NOW]
createdate:[1976-03-06T23:59:59.999Z TO *]
createdate:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]
pubdate:[NOW-1YEAR/DAY TO NOW/DAY+1DAY]
createdate:[1976-03-06T23:59:59.999Z TO 1976-03-06T23:59:59.999Z+1YEAR]
createdate:[1976-03-06T23:59:59.999Z/YEAR TO 1976-03-06T23:59:59.999Z]