Есть запрос вида:
{
"aggs": {
"test": {
"date_histogram": {
"field": "user.date",
"interval": "1d"
},
"aggs": {
"all_view": {
"sum": {
"field": "view"
}
},
"uniq_users": {
"cardinality": {
"field": "uid"
}
}
}
}
}
}
где во втором aggs может быть до 10-15 однотипных полей с sum. В принципе этот вопрос работает ( 30-50 секунд на 150 Гб ). Возможно ли оптимизировать этот запрос ( например разделить на 10-15 маленьких запросов по каждому sum отдельно или может быть какой индекс добавить ? ) Текущий mapping для индекса:
{
"template" : "test",
"mappings" : {
"_default_" : {
"_all" : {"enabled" : true},
"dynamic_templates" : [ {
"string_fields" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping" : {
"type" : "multi_field",
"fields" : {
"{name}" : {"type": "string", "index" : "analyzed", "omit_norms" : true, analyzer: "keyword" }
}
}
}
} ],
"properties" : {
"@version": { "type": "string", "index": "not_analyzed" }
}
}
}
}