Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
如何在solr中比较日期?_Solr - Fatal编程技术网

如何在solr中比较日期?

如何在solr中比较日期?,solr,Solr,我的模式有两个字段 <field name="startDate" type="date" indexed="true" stored="true"/> <field name="endDate" type="date" indexed="true" stored="true"/> 我需要搜索“当前时间”介于开始日期和结束日期之间的文档 查询将是什么?一个查询字符串,为了清楚起见没有转义,可能看起来像这样(使用lucene查询解析器语法): 引自 如果使用Solr“

我的模式有两个字段

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

我需要搜索“当前时间”介于开始日期和结束日期之间的文档


查询将是什么?

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

引自

如果使用Solr“DateField”类型,那么对这些字段的任何查询(通常是范围查询)都应该使用字段支持的完整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]
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]