28

好吧,我正在编写一些方法来返回与间隔日期范围相匹配的 solr 文档。Docs 以 ISO 8601 格式存储日期字段。

任何的想法?

谢谢

4

3 回答 3

68

SOLR wiki中查看一些文档和示例:

时间戳:[* 到现在]

创建日期:[1976-03-06T23:59:59.999Z TO *]

创建日期:[1995-12-31T23:59:59.999Z 至 2007-03-06T00:00:00Z]

发布日期:[NOW-1YEAR/DAY TO NOW/DAY+1DAY]

创建日期:[1976-03-06T23:59:59.999Z 至 1976-03-06T23:59:59.999Z+1YEAR]

创建日期:[1976-03-06T23:59:59.999Z/年至 1976-03-06T23:59:59.999Z]

希望这会有所帮助,大卫。

于 2009-04-28T08:25:49.080 回答
32

在这里您可以找到有关范围查询的更多详细信息

https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser

举几个例子

1. Exact Matching: q= modify_date:"2012-07-06T9:23:43Z"
2. Less than: q= modify_date:{* TO 2012-07-06T9:23:43Z } 
3. More than: q= modify_date:{ 2012-07-06T9:23:43Z TO *}
4. Less or equal than: modify_date:[* TO 2012-07-06T9:23:43Z] 
5. More or equal than: modify_date:[ 2012-07-06T9:23:43Z TO *]

方括号 [ ] 表示匹配包含上限和下限的值的包含范围查询。

花括号 { } 表示一个排他范围查询,它匹配上限和下限之间的值,但不包括上限和下限本身。

于 2013-10-04T07:35:38.370 回答
4

假设您在 Schema 中的字段为 Modified_Date 那么您可以应用以下范围查询:

Modified_Date:[2015-04-20T07:49:00Z TO *]
Modified_Date:[2015-04-20T07:49:00Z TO 2015-05-
20T07:33:00Z]
Modified_Date:[2015-04-20T07:49:00Z TO NOW]
Modified_Date:[NOW-7DAY/DAY TO NOW]
Modified_Date:"2015-05-27T10:04:00Z"
Modified_Date:NOW
Modified_Date:NOW/DAY
Modified_Date:NOW/HOUR
Modified_Date:NOW-1YEAR
Modified_Date:NOW-2YEARS
Modified_Date:NOW-3HOURS-30MINUTES
Modified_Date:"2008-07-04T13:45:04Z/DAY"
Modified_Date:[* TO NOW]
Modified_Date://DAY
Modified_Date://HOUR
Modified_Date:[ * 2015-04-20T07:49:00Z ]
Modified_Date:[2015-04-20T07:49:00Z *]
于 2015-05-29T06:17:27.027 回答