ElasticSearch聚合Filter错误的结果
the result of ElasticSearch aggregation Filter error
我的searchRequest是这样的,我只想得到两个skill_group (id = 6806,6805)聚合结果,所以我在查询和聚合中都添加了过滤器。但我仍然得到其他 skill_group 聚合结果。
es 版本是 7.1
{
"size": 0,
"query": {
"bool": {
"filter": [{
"terms": {
"skill_group_id": [6806, 6805],
"boost": 1.0
}
}],
"adjust_pure_negative": true,
"boost": 1.0
}
},
"aggregations": {
"test": {
"filter": {
"terms": {
"skill_group_id": [6806, 6805],
"boost": 1.0
}
},
"aggregations": {
"SKILLGROUP": {
"terms": {
"field": "skill_group_id",
"size": 10000,
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": [{
"_count": "desc"
}, {
"_key": "asc"
}],
"collect_mode": "breadth_first"
},
"aggregations": {
"WORKSTATUS": {
"terms": {
"field": "status",
"size": 10000,
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": [{
"_count": "desc"
}, {
"_key": "asc"
}],
"collect_mode": "breadth_first"
}
}
}
}
}
}
}
}
结果是这样的
如果 skill_group_id
是一个数组,则 skill_group_id
上的聚合将聚合该数组的所有值。
除了过滤器之外,您还可以对 terms
聚合进行 leverage the include
setting,如下所示:
"SKILLGROUP": {
"terms": {
"field": "skill_group_id",
"size": 10000,
"include": [6806, 6805], <--- add this
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": [{
"_count": "desc"
}, {
"_key": "asc"
}],
"collect_mode": "breadth_first"
},
我的searchRequest是这样的,我只想得到两个skill_group (id = 6806,6805)聚合结果,所以我在查询和聚合中都添加了过滤器。但我仍然得到其他 skill_group 聚合结果。 es 版本是 7.1
{
"size": 0,
"query": {
"bool": {
"filter": [{
"terms": {
"skill_group_id": [6806, 6805],
"boost": 1.0
}
}],
"adjust_pure_negative": true,
"boost": 1.0
}
},
"aggregations": {
"test": {
"filter": {
"terms": {
"skill_group_id": [6806, 6805],
"boost": 1.0
}
},
"aggregations": {
"SKILLGROUP": {
"terms": {
"field": "skill_group_id",
"size": 10000,
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": [{
"_count": "desc"
}, {
"_key": "asc"
}],
"collect_mode": "breadth_first"
},
"aggregations": {
"WORKSTATUS": {
"terms": {
"field": "status",
"size": 10000,
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": [{
"_count": "desc"
}, {
"_key": "asc"
}],
"collect_mode": "breadth_first"
}
}
}
}
}
}
}
}
结果是这样的
如果 skill_group_id
是一个数组,则 skill_group_id
上的聚合将聚合该数组的所有值。
除了过滤器之外,您还可以对 terms
聚合进行 leverage the include
setting,如下所示:
"SKILLGROUP": {
"terms": {
"field": "skill_group_id",
"size": 10000,
"include": [6806, 6805], <--- add this
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": [{
"_count": "desc"
}, {
"_key": "asc"
}],
"collect_mode": "breadth_first"
},