2012-05-15 5 views
0

J'ai un exemple de schéma comme:SOLR: requête de gamme avec la somme

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 

Je voudrais pefrorm une requête de plage sur « date » et savoir combien de nouveaux/les parents uniques se sont produites chaque jour. En d'autres termes, j'aimerais voir combien de nouveaux parents ont été ajoutés au fil du temps. Pour les données étant donné la sortie devrait ressembler à:

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...) 

Est-ce ce genre de requête même possible dans SOLR?

Répondre

2

Oui, cela devrait être assez simple si je comprends bien votre question. Ajouter quelque chose comme

fq=date:[2012-05-05T00:00:00Z TO 2012-05-06T00:00:00Z] 

à votre requête va vous chercher tous les documents avec une date entre le 5 mai et le 6 mai. Assurez-vous de stocker vos dates au format ISO 8601.

Pour en savoir plus, consultez les exemples récents ici: http://wiki.apache.org/solr/SolrQuerySyntax

EDIT: Je compris votre question mieux maintenant - vous êtes à la recherche de « groupe effondrement. »

Essayez

&group=true&group.field=parent&group.limit=1 

et compter le nombre de documents retournés.

Si vous voulez des valeurs pour chaque date, vous voulez facette par date:

&facet=true&facet.field=date 
+0

Cette requête compterait tous les documents dans la fourchette de date donnée. Je voudrais compter combien de nouvelles valeurs de "parent" se sont produites dans cette gamme. – Pma

+0

Got it - réponse éditée! – Ansari

+0

Est-ce que cela fonctionne pour vous? – Ansari