Elasticsearch фильтр агрегации на минимальном количестве документов
Я действительно новичок в мире исследований.
Допустим, у меня есть вложенная агрегация по двум полям:field1
а такжеfield2
:
{
...
aggs: {
field1: {
terms: {
field: 'field1'
},
aggs: {
field2: {
terms: {
field: 'field2'
}
}
}
}
}
}
Этот кусок кода работает отлично и дает мне что-то вроде этого:
aggregations: {
field1: {
buckets: [{
key: "foo",
doc_count: 123456,
field2: {
buckets: [{
key: "bar",
doc_count: 34323
},{
key: "baz",
doc_count: 10
},{
key: "foobar",
doc_count: 36785
},
...
]
},{
key: "fooOO",
doc_count: 423424,
field2: {
buckets: [{
key: "bar",
doc_count: 35
},{
key: "baz",
doc_count: 2435453
},
...
]
},
...
]
}
}
Теперь мне нужно исключить все результаты агрегирования, еслиdoc_count
менее 1000, например, и получите это вместо:
aggregations: {
field1: {
buckets: [{
key: "foo",
doc_count: 123456,
field2: {
buckets: [{
key: "bar",
doc_count: 34323
},{
key: "foobar",
doc_count: 36785
},
...
]
},{
key: "fooOO",
doc_count: 423424,
field2: {
buckets: [{
key: "baz",
doc_count: 2435453
},
...
]
},
...
]
}
}
Можно ли установить эту потребность в теле запроса? или я должен выполнить фильтр в макете вызывающего абонента (в моем случае в JavaScript)?
заранее спасибо