2016-10-30 6 views
0

Ich habe einen Index mit dieser Art des Dokuments:Elasticsearch, erhält Frequenz und Anzahl des Elements

 { 
      "_id": "6827", 
      "_index": "test", 
      "_score": 1.0, 
      "_source": { 
       "class": [ 
        { 
         "name": "physics", 
         "grade" : [ 
           12, 
           2 
          ], 
        }, 
        { 
         "name": "french", 
         "grade" : [ 
          4, 
          8, 
         ], 
        }, 
        { 
         "name": "sport", 
         "grade": [ 
          14, 
          18, 
          16 
         ] 
        } 
       ] 
      }, 
      "_type": "student" 
     } 

Ein Student unterschiedliche Anzahl gezeichneter Klasse

Ich mag haben:

  1. wissen wie verteilt ist die Anzahl der Klasse (Anzahl der Schüler mit 1 Klasse, mit 2 Klassen und so weiter)
  2. wie oft jede Klasse genommen wird (I kno w alle möglichen Klassen)

habe ich gesehen, dass metric aggregations möglich sind, und dass ich will, was zu tun ist possible. Aber ich bin ein Neuling mit es, und es ist mir nicht gelungen, das zu ändern.

Darf jemand helfen?

Antwort

0

Ich würde vorschlagen, die Daten anders zu indizieren. Habe 1 Dokument, das den Schüler in einer einzigen Klasse repräsentiert. Etwas wie:

{ 
    studentID: 123, 
    studentName: "foo bar", 
    classID: 111, 
    classType: "physics" 
} 

Dies wird Ihnen ermöglichen, die Aggregationen, die Sie suchen, viel einfacher zu tun.

+0

Ich habe gerade meine Frage bearbeitet, die Zuordnung war nicht die gute. Wie auch immer, ich kann das nicht, das ist nicht meine Elasticsearch Instanz ... – Gaut