es分类聚合

1.很多时候我们都会遇到聚合操作,mysql里面的count就是一种聚合操作,而es中也可以有相应的聚合操作.
“aggs”:就是聚合的操作
GET novel_true/_search
{
“query”: {
“match_all”: {}
},
“aggs”: {
“category_count”: {
“value_count”: {
“field”: “category”
}
}
}
}
运行后发现出错了
在这里插入图片描述
在novel索引上对[ category]字段分类聚合,通过在kibana上的测试,出现了一些问题, 此问题的原因是category
category的类型不是keyword,因为keyword在聚合时是一个整体,而text会把字分开。
我们可以新建立一个novel_category_count的新索引
PUT novel_category_count
{
“mappings” : {
“doc” : {
“properties” : {
“@timestamp” : {
“type” : “date”
},
“@version” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“author” : {
“type” : “keyword”
},
“category” : {
“type” : “keyword”
},
“clickcount” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“collect” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“count” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“countrecommend” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“detail” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“detaul” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“id” : {
“type” : “long”
},
“lastchapter” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“lastupdate” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“monthclick” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“monthrecommend” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“name” : {
“type” : “keyword”
},
“new” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“novelinfo” : {
“type” : “keyword”
},
“picurl” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“status” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“weekclick” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“weekrecommend” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
}
}
}
}
}
}

在这里插入图片描述
修改为keyword就可以了。
然后把数据导入进去
POST _reindex
{
“source”: {
“index”: “novel_true”
},
“dest”: {
“index”: “novel_category_count”
}
}

重新执行之后发现没有起到分类效果
GET novel_category_count/_search
{
“query”: {
“match_all”: {}
},
“aggs”: {
“category_count”: {
“value_count”: {
“field”: “category”
}
}
}
}

在这里插入图片描述
然后我们可以去官方文档上面
https://www.elastic.co/guide/en/elasticsearch/reference/6.0/agg-metadata.html
可以看见
在这里插入图片描述
官方是这样写的。
那么我们就可以根据官方的写法修改
GET novel_category_count/_search
{
“size”: 0,
“aggs”: {
“category_count”: {
“terms”: {
“field”: “category”
}
}
}
}

我们发现这就成功了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值