Potrzebuję zsumować tylko wartości w zagnieżdżonych obiektach pasujących do zapytania. Wygląda na to, że ElasticSearch określa dokumenty pasujące do zapytania, a następnie sumuje wszystkie zagnieżdżone obiekty. Z poniższego konspektu chcę wyszukać na nestedobjects.objtype = "A" i odzyskać sumę objvalue tylko dla pasujących obiektów nestedobjects, chcę uzyskać wartość 4. czy jest to możliwe? Jeśli tak to jak?Zagregowane wartości dopasowane tylko do zagnieżdżonych obiektów w ElasticSearch
Oto odwzorowanie
{
"myindex": {
"mappings": {
"mytype": {
"properties": {
"nestedobjects": {
"type": "nested",
"include_in_parent": true,
"properties": {
"objtype": {
"type": "string"
},
"objvalue": {
"type": "integer"
}
}
}
}
}
}
}
}
Oto moje dokumenty
PUT /myindex/mytype/1
{
"nestedobjects": [
{ "objtype": "A", "objvalue": 1 },
{ "objtype": "B", "objvalue": 2 }
]
}
PUT /myindex/mytype/2
{
"nestedobjects": [
{ "objtype": "A", "objvalue": 3 },
{ "objtype": "B", "objvalue": 3 }
]
}
Oto mój kod zapytania.
POST allscriptshl7/_search?search_type=count
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "nestedobjects.objtype:A"
}
}
}
},
"aggregations": {
"my_agg": {
"sum": {
"field": "nestedobjects.objvalue"
}
}
}
}
Dzięki, przetestuję to nieco. – user481779
Działa jak w reklamie! – user481779
Brak rzeczywistego rozwiązania: zależy od wcześniej znanych wartości filtru, nie działa z histogramem, histogramem daty ani terminami z nieprzewidywalnymi klawiszami. – Sebastian