我有一个SOLR存储库,我存储了一些事件。事件日期字段(eventdate)以yyyymmdd
格式存储为int
。我需要在SOLR中获得每年的事件统计数据。换句话说,如果它是一个SQL数据库,我会做select count(*),substring(eventdate,0,4) group by substring(eventdate,0,4)
。我怎么能用SOLR做到这一点?
答案 0 :(得分:0)
尝试将eventdate
除以10000并将其转换为int,这样您就可以将数字的前4位数字分开。
试试这个:
select count(*) group by cast((eventdate/10000) as int)
第二个解决方案
在看到您的更新后,我了解您想要实现的目标,因此您需要做的是查询特定年份中发生的所有事件:
eventdate > YYYY0000 and eventdate <= yyyy1232
因为您的int是以这种格式yyyymmdd
构建的,所以您可以保证所有事件日期都在一个序列中。