2012-05-15 126 views
0

我有一个例子像模式:SOLR:范围查询与和

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 

我想pefrorm上的“日期”范围查询并知道有多少新的/独特的父母每天都发生。换句话说,我想看看有多少新父母是通过时间增加的。对于给定的数据输出应该看起来像:

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中吗?

回答

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 
+0

这个查询只能算作在指定日期范围内的所有文件。我想统计在该范围内发生了多少个“父母”的新值。 – Pma

+0

明白了 - 回答编辑! – Ansari

+0

这是否适合你? – Ansari