【问题标题】:Elasticsearch - how to aggregate on wildcard fieldElasticsearch - 如何在通配符字段上进行聚合
【发布时间】:2017-04-25 08:39:30
【问题描述】:
我不知道这是否可能,但我使用 * 通配符 fe. 过滤位置:查找位置为 0010020* 的所有行。这将返回 3000 行(城市为 0010020(2000 行),城市区域为 001002001(1000 行))。
“locality”上的术语聚合返回 0010020 - 2000 行。是否可以说聚合“使用通配符计数”并将所有 3000 行作为 doc_count 返回?
谢谢。
【问题讨论】:
标签:
elasticsearch
aggregate
wildcard
【解决方案1】:
这样试试,用query_string代替wildcard。query_string比wildcard更强大:-
{
"_source": false,
"query": {
"query_string": {
"fields": ["fieldName"],
"query": "*fieldValue1* *fieldValue2*"
}
},
"aggregations": {
"byFieldName": {
"terms": {
"field": "fieldName"
}
}
}
}