elasticsearch Elasticsearch按字段分组
我有一些squid数据,如下所示:
elasticsearch Elasticsearch按字段分组,
elasticsearch,group-by,
elasticsearch,Group By,我有一些squid数据,如下所示: {"requestresultcode": "TCP_MISS/200"}, {"requestresultcode": "TCP_MISS/200"}, {"requestresultcode": "TCP_MISS/302"}, {"requestresultcode": "TCP_MISS/504"}, {"requestresultcode": "TCP_MISS/200"}, {"requestresultcode": "ERR_CLIENT_ABO
{"requestresultcode": "TCP_MISS/200"},
{"requestresultcode": "TCP_MISS/200"},
{"requestresultcode": "TCP_MISS/302"},
{"requestresultcode": "TCP_MISS/504"},
{"requestresultcode": "TCP_MISS/200"},
{"requestresultcode": "ERR_CLIENT_ABORT/000"},
{"requestresultcode": "ERR_CLIENT_ABORT/200"},
{"requestresultcode": "ERR_CLIENT_ABORT/302"},
{"requestresultcode": "ERR_CLIENT_ABORT/502"},
{"requestresultcode": "ERR_CONNECT_FAIL/502"}
我想按字段分组,所以我使用了聚合术语
{
"aggs": {
"agg1": {
"terms": {
"field": "cacheresultcode"
}
}
}
}
我得到的结果是:
"aggregations": {
"agg1": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "200",
"doc_count": 2011
},
{
"key": "tcp_miss",
"doc_count": 1740
},
{
"key": "err_client_abort",
"doc_count": 705
},
{
"key": "302",
"doc_count": 244
},
{
"key": "000",
"doc_count": 185
},
{
"key": "502",
"doc_count": 24
},
{
"key": "err_connect_fail",
"doc_count": 23
},
{
"key": "504",
"doc_count": 4
}
]
}
}
使用SQL之间有一些不同,我认为应该是这样的
错误客户端中止/000
错误客户端中止/200
错误客户端中止/302
错误客户端中止/502
错误连接失败/502
TCP_MISS/200
TCP_MISS/302
TCP_MISS/504
我该怎么办?
谢谢你的帮助 如果在其他地方使用分析字段,则可以使用为cacheresultcode创建关键字类型 映射 质疑
希望这有帮助。您的cacheresultcode字段是一个已分析的字符串,您需要将其设置为关键字,即未分析的字符串。明白!!它非常有用
{
"mappings": {
"document_type" : {
"properties": {
"cacheresultcode":{
"type": "text",
"fields": {
"keyword" : {
"type": "keyword"
}
}
}
}
}
}
}
{
"aggs": {
"agg1": {
"terms": {
"field": "cacheresultcode.keyword"
}
}
}
}