2012-05-15 158 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