提问要多花一点心思哦

可不可以根据字符串的一部分,也就是截取字符串的一部分进行聚合?

Elasticsearch | 作者 chaochao6411 | 发布于2019年04月11日 | 阅读数:4622

系统提示:这个人太懒了,什么问题描述都没有写!

已邀请:

liuzhen6835

赞同来自:

没做过,不过感觉用脚本语言应该可以做

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

应该没有类似的功能。因为聚合的时候都需要指定一个fied的,这个field就是字段的意思。
建议你在数据写入的时候对数据进行拆分,然后再对拆分的字段进行聚合,就能够满足要求。

z8756413

赞同来自:

比如截取前30个字符(不足30个取全部)聚合
GET goodsInfo/_search
{
"size": 0,
"query": {
  "exists":{
    "field":"goods_name"
  }
}, 
"aggs": {
"groupby": {
"terms": {
"script": {
"inline": "if(doc['goods_name'].value.length() > 30) { return doc['goods_name'].value.substring(0,30);} return doc['goods_name'].value.substring(0)"
}
}
}
}
}
 

要回复问题请先登录注册