solr date stats查询

时间:2016-07-09 21:47:14

标签: solr lucene solrj

我有一个SOLR存储库,我存储了一些事件。事件日期字段(eventdate)以yyyymmdd格式存储为int。我需要在SOLR中获得每年的事件统计数据。换句话说,如果它是一个SQL数据库,我会做select count(*),substring(eventdate,0,4) group by substring(eventdate,0,4)。我怎么能用SOLR做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试将eventdate除以10000并将其转换为int,这样您就可以将数字的前4位数字分开。

试试这个:

select count(*) group by cast((eventdate/10000) as int)
  

第二个解决方案

在看到您的更新后,我了解您想要实现的目标,因此您需要做的是查询特定年份中发生的所有事件:

eventdate > YYYY0000 and eventdate <= yyyy1232

因为您的int是以这种格式yyyymmdd构建的,所以您可以保证所有事件日期都在一个序列中。