2016-04-25 20 views
0

In meinem entwickelten Trainingsmodul gibt es eine Seite, die alle Kurse in eine Tabellenansicht mit filterbarer Kopfzeile auflistet. Eine der Spalten ist die Spalte "Gespeichert", die "Gespeichert" wird, wenn ich sie mit einem Lesezeichen versehen habe, und "Nicht gespeichert", falls nicht.Elasticsearch benutzerdefinierte Aggregation Ergebnis

Der Kurs Einheit wie unten indiziert:

{ 
    "_index": "myindex", 
    "_type": "course", 
    "_id": "248fc0a2-06e1-11e6-b740-000c298fdb4d", 
    "_score": 1, 
    "_source": { 
    "boost_number": 1, 
    "entity_type_number": 64, 
    "course_status_string": "Closed", 
    "title": "My Test Course", 
    "body": "This is just a test course", 
    "created_date": "20160420T101753Z", 
    "categories_uuid": [ ], 
    "segment_string": [ 
    "Other" 
    ], 
    "vertical_string": [ 
    "Other" 
    ], 
    "saved_users_uuid": [ 
    "251bde26-4adf-11e4-b705-000c298fdb4d", 
    "00026884-7cc8-11e3-a570-fa163e2bcb7a", 
    "00061164-9283-11e5-a394-000c298fdb4d", 
    "00110a72-0b8b-11e4-9a64-fa163e2bcb7a", 
    ] 
} 

Lasst uns sagen, ich habe mit der ID angemeldet: "251bde26-4adf-11e4-b705-000c298fdb4d". Wenn elastische Facetten abfragt, erhielt ich diesen Eimer:

"saved_users" : { 
    "doc_count_error_upper_bound": 0, 
    "sum_other_doc_count": 0, 
    "buckets" : [ 
     { 
      "key" : "251bde26-4adf-11e4-b705-000c298fdb4d", 
      "doc_count" : 5 
     }, 
     { 
      "key" : "00026884-7cc8-11e3-a570-fa163e2bcb7a", 
      "doc_count" : 0 
     }, 
     ... 
    ] 
} 

Aber ich möchte eine andere benutzerdefinierte Eimer haben, wie zum Beispiel:

{ 
    ... 
    "buckets": [ 
    { 
     "key": "Saved", 
     "doc_count": ... 
    }, 
    { 
     "key": "Unsaved", 
     "doc_count": ... 
    }, 
    ] 
} 

Ist das möglich? Wie könnte ich das tun?

Antwort

1

Sie können versuchen, die folgenden filters aggregation hinzuzufügen:

{ 
    "size": 0, 
    "aggs": { 
    "category": { 
     "filters": { 
     "filters": { 
      "Saved": { 
      "exists": { 
       "field": "saved_users_uuid" 
      } 
      }, 
      "Unsaved": { 
      "missing": { 
       "field": "saved_users_uuid" 
      } 
      } 
     } 
     } 
    } 
    } 
} 
Verwandte Themen