#elasticsearch
Вопрос:
У меня есть указатель с этими документами.
[
{
"name": "Name1",
"class": "class-A",
"daysPresent": "first Day"
},
{
"name": "Name2",
"class": "class-A",
"daysPresent": "second Day"
},
{
"name": "Name3",
"class": "class-A",
"daysPresent": "third Day"
},
{
"name": "Name4",
"class": "class-B",
"daysPresent": "single Day"
},
{
"name": "Name5",
"class": "class-C",
"daysPresent": "single Day"
},
{
"name": "Name6",
"class": "class-D",
"daysPresent": "single Day"
},
{
"name": "Name7",
"class": "class-B",
"daysPresent": "second Day"
},
{
"name": "Name8",
"class": "class-C",
"daysPresent": "third Day"
},
{
"name": "Name9",
"class": "class-C",
"daysPresent": "second Day"
}
]
Теперь я хочу знать все записи, которые имеют то же значение daysPresent, что и те, которые присутствуют, скажем, в классе-C. Можно ли сделать что-то подобное в elasticsearch??
Запрос, который мне удалось создать до сих пор:
GET skutest/_search
{
"query": {
"term": {
"class.keyword": {
"value": "class-C"
}
}
},
"aggs": {
"DaysPresentBucket": {
"terms": {
"field": "daysPresent",
"size": 10
}
},
"GLobal": {
"global": {},
"aggs": {
"ALLNamesWithSameDAy": {
"filter": {
"terms": {
"daysPresent": [ //Pass value of DaysPresentBucket here
"VALUE1",
"VALUE2"
]
}
}
},
"TopHIts": {
"top_hits": {
"size": 10
}
}
}
}
}
In the above query I have no idea how to pass values in global aggregation dynamically depending on values from DaysPresentBucket