elasticsearch 索引字段type为text,添加keyword 属性之后仍然不能聚合查询?
问题描述
elasticsearch6.6
,需要对索引中的一个字段进行聚合查询,但是原来默认生成的mapping中该字段的type是text
,是不能聚合操作的。然后通过api对该字段进行添加keyword属性。
相关代码
PUT /myindex/_mapping/doc
{
"properties": {
"myfield": {
"type": "text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
}
}
}
通过确认mapping文件,该操作是生效的。
你期待的结果是什么?实际看到的错误信息又是什么?
想对该字段进行聚合查询(按数量排序)
GET /myindex/_search
{
"aggs":{
"field":{
"terms": {
"field": "myfield.keyword",
"order": {
"_count": "desc"
},
"size":10
}
}
},
"size":0
}
实际结果不报错,但是没有聚合结果。
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 3,
"successful" : 3,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 10310410,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"field" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [ ]
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
需要更新一下索引,http://ip/myindex/_update_by_...