#elasticsearch #kibana
#elasticsearch #kibana
Вопрос:
Могу ли я фильтровать документы в эластичном поиске перед их свертыванием, или я могу определить запрос фильтра в задании свертки, если да, то как?
Ответ №1:
Невозможно отфильтровать данные перед их преобразованием в новый свернутый индекс. Однако вы можете добиться желаемого, сначала определив отфильтрованный псевдоним, а затем свернув его по этому псевдониму.
Допустим, вы хотите свернуть индекс test
, но только для клиентов 1, 2 и 3. Вы можете создать следующий фильтрованный псевдоним:
POST /_aliases
{
"actions": [
{
"add": {
"index": "test",
"alias": "filtered-test",
"filter": { "terms": { "customer.id": [1, 2, 3] } }
}
}
]
}
И затем вы можете свернуть filtered-test
псевдоним вместо test
индекса, и это приведет только к свертке данных от клиентов 1, 2 и 3:
PUT _rollup/job/sensor
{
"index_pattern": "filtered-test",
"rollup_index": "customer_rollup",
...
}
PS: Стоит отметить, что вы не одиноки, но сотрудники Elastic специально решили не разрешать фильтрацию в сводках по разным причинам (подробнее вы можете прочитать в выпуске, на который я ссылался). Проблема была вновь открыта, потому что происходит большой рефакторинг функции свертывания. Следите за обновлениями…