1、elasticsearch空index搜索排序报错问题( No mapping found for [Time] in order to sort on)
查看对应的 index 后,发现这个 index 没有数据,创建的时候是有默认的 _default_
mapping 结构的。
1
| curl -XPOST "http://172.26.137.58:9200/events-history-imp_19_iscs_he-2021042504/_search" -d '{"from":0,"size":51,"query":{"bool":{"filter":[{"range":{"Time":{"from":1617552000000000000,"to":1623686400999000000,"include_lower":true,"include_upper":true,"boost":1}}},{"bool":{"disable_coord":false,"adjust_pure_negative":true,"boost":1}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1}},"sort":[{"Time":{"order":"asc", "unmapped_type" : "long"}},{"EventId":{"order":"asc", "unmapped_type": "keyword"}}]}'
|
查看资料后,知道原因:
ES创建 index 后,虽然指定了 _defult_
mapping 但根本没有初始化,在search查询查询排序时候 sort 的字段不知道什么类型,就会导致上述错误。
解决办法:
在 sort 的字段属性里面,添加 unmapped_type 属性。
参考代码