I Index diese:Elasticsearch - verwenden bucket Schlüssel als Filtervariable
POST nephi/boat/1
{
"plates": {
"id": 123,
"type": "brass"
},
"compass": {
"id": 123,
"name": "liahona"
}
}
POST nephi/boat/2
{
"plates": {
"id": 100,
"type": "brass"
},
"compass": {
"id": 234,
"name": "liahona"
}
}
Ich benutze diese Suchabfrage, so kann ich eine Aggregation tun, wo plates.id
und compass.id
gleich sind:
POST nephi/boat/_search
{
"aggs": {
"terms_agg": {
"terms": {
"field": "plates.id"
},
"aggs": {
"filter_agg": {
"filter": {
"term": {
"compass.id": 123
}
}
}
}
}
},
"size": 0
}
Statt mit "compass:id": 123
, würde ich gerne in der Lage sein, eine Variable anstelle von 123, wie "compass:id": "__bucket_key"
zu verwenden, wobei __bucket_key
123 auf dem ersten Dokument oben und 100 auf dem zweiten Dokument oben verweisen würde (die plates.id
s).
Ist so etwas möglich?
Sie möchten auf plates.id aggregieren, wobei 'plates.id == compass.id' ?? – Richa
@Richa, ja. Es mag in diesem Beispiel albern erscheinen, aber ich möchte das tun, damit ich eine weitere Metrik-Unteraggregation (wie count oder sum) durchführen kann, nur für Dokumente, bei denen '' 'plates.id == compass.id''' steht . – chevin99