Elasticsearch:如何在保持日志被过滤掉的同时排除计算某些字段?

时间:2017-01-27 20:05:24

标签: elasticsearch

我希望这个问题不是很模糊......

我在ES中有大量日志,我正在尝试聚合特定字段的总和,在本例中为file,映射为

http://localhost:9200/set_1/record/_mapping

"properties": {
    "tags": {"type":"object","dynamic":false,"properties":{
                "all":{"type":"string","analyzer":"my_analyzer","store":"true"},
                "some_other_stuff_that's_not_important":.....
    },
    "file": {"type":"nested","dynamic":"false","include_in_root":"true","properties":{
                "doctype":{"type":"string","index":"not_analyzed","include_in_all":"false"},
                "some_other_stuff": {....}
    }

所以我现在要使用名为tag的{​​{1}}过滤所有内容,并且我想计算这些过滤日志中download的数量

file

现在,{ "query": { "bool": { "must": [ { "term": { "tags.all": "Downloaded" } } ] } } } 将是此日志中包含的不同文件的列表,如果我想计算所有文件但排除某些文件类型,我想知道如何聚合,比如{ {1}}

我应该如何形成聚合查询?

1 个答案:

答案 0 :(得分:0)

所以我使用key = file.type进行了聚合,并在聚合查询中添加了exclude arg,使其排除= [“type1”,“type2”],其中类型1和2是不同的文件类型

顺便说一句,这是针对ES 1.7的。