我有一个示例架构,如:
id:1,date:2012-05-01,parent:p1
id:1,date:2012-05-01,parent:p2
id:1,date:2012-05-01,parent:p3
id:1,date:2012-05-02,parent:p1
id:1,date:2012-05-02,parent:p4
我想对“日期”进行范围查询,并了解每天发生了多少新的/独特的父母。换句话说,我想看看随着时间的推移增加了多少新父母。对于给定的数据,输出应如下所示:
2012-04-31:0 (no parents existed an that time)
2012-05-01:3 (because three new parents occured at 2012-05-01: p1,p2,p3)
2012-05-02:4 (which is 3 parents from 2012-05-01 and 1 new unique parent p4 occured at 2012-05-02 which gives a total of 4)
2012-05-03:4 (no new parent was added this day...)
在SOLR中甚至可以进行这种查询吗?
答案 0 :(得分:2)
如果我正确理解你的问题,这应该相当简单。添加类似
的内容fq=date:[2012-05-05T00:00:00Z TO 2012-05-06T00:00:00Z]
到您的查询将获取所有日期为5月5日至5月6日的文档。确保以ISO 8601格式存储日期。
有关详情,请查看此处的日期示例:http://wiki.apache.org/solr/SolrQuerySyntax
编辑:我现在更了解你的问题 - 你正在寻找“群体崩溃。”
尝试
&group=true&group.field=parent&group.limit=1
并计算返回的文件数量。
如果您希望它们具有每个日期的值,那么您需要按日期进行构面:
&facet=true&facet.field=date