2017-07-26 6 views
0

Wenn ein Solr Daten für Benutzer und ZieleSolr erhalten Anzahl der Aggregationsfunktion

{user_id: user1,goals: 1} 
{user_id: user1,goals: 3} 
{user_id: user2,goals: 0} 
{user_id: user2,goals: 4} 
{user_id: user3,goals: 2} 
{user_id: user3,goals: 1} 

Ich bin zu wollen, wie viele Benutzer 1,2,3 hat, um herauszufinden, haben ... Tore insgesamt.

also die Daten über Ich möchte eine Abfrage, Bisher habe ich eine Abfrage

{goals: 3, count: 1} 
{goals: 4, count: 2} 

zurückgeben können, die die Gesamtzahl der Ziele für jeden Benutzer auf zurückkehren können, aber ich bin nicht sicher, ob es möglich Facette die Summen

Meine Anfrage bisher

{ 
    "user_facet": 
    { 
    "type":"terms", 
    "field":"user_id", 
    "facet": 
    { 
     "sum_of_goals":"sum(goals)" 
    } 
    } 
} 
+0

können Sie umformulieren? das Beispiel ist schwer zu verstehen, scheint nicht die Daten zu mir zu entsprechen ... – Persimmonium

+0

grundsätzlich gibt es zwei Stufen, insgesamt die Ziele pro Benutzer so Benutzer 1 = 4, Benutzer 2 = 4, Benutzer 3 = 3 Ziele. Dann möchte ich die Anzahl der Benutzer zählen, die 3 Tore = 1, 4 Ziele = 2 –

+0

gezählt haben. Was bedeutet {user_id: user1, goals: 1}, dass user1 "goal 1" von "user1" abgeschlossen hat 1 Ziele insgesamt " – Persimmonium

Antwort

1

ich glaube nicht, dass Sie dies mit json Facetten bekommen. Aber sicher ist es möglich mit Streaming Expressions. Sie sind ein bisschen komplexer, um anzufangen, aber Sie können viel mehr Dinge erreichen.

+0

Vielen Dank für jetzt Ich verwende die Abfrage, um die Summen für jeden Benutzer zu erhalten und die Ergebnisse in Ruby zu verarbeiten, um die Daten zu berechnen, die ich brauche, aber ich werde in Streaming-Ausdrücke schauen –

Verwandte Themen