在Solr中的同一过滤器上过滤两个不同的日期

时间:2012-11-13 22:07:27

标签: solr lucene

在Solr中,如果您有一个索引的数据,并且在该数据中您有一组日期值,那么如何查询索引并询问X和Y日期之间的事件?

例如,如果我有一个事件场所列表,每个场景都有几十个事件(单个,全天或多天),您将如何构建过滤器以返回事件在开始日期和结束日期之间的场所在搜索中指定?

现在,如果我在表单中搜索并将其提交给Solr,则查询字符串如下所示:

&fq=dm_event_start_date\:value:["2013-01-04T05:00:00Z" TO *]
&fq=dm_event_end_date\:value:[* TO "2013-01-08T05:00:00Z"]
&fq=bm_tickets_left\:value:"TRUE"

我真正想要的是1月4日发生或开始的事件,不会持续到1月8日以后,并且仍然有门票。

我觉得我得到的回报是两个日期之间的任何事件,或者是否有可用的门票 - 不一定与日期匹配。

1 个答案:

答案 0 :(得分:0)

日期字段值可能需要超出范围查询中的引用,例如: -

&fq=dm_event_start_date:value:[2013-01-04T05:00:00Z TO *]
&fq=dm_event_end_date:value:[* TO 2013-01-08T05:00:00Z]
&fq=bm_tickets_left:value:true

bm_tickets_left也需要只是字符串值。