问题是这样的,查询es接口报错,测试环境和正式环境代码一样。测试环境没问题。
报错是 fieddata is disabled on text fields by default set fielddata=true on status in order to load fielddata in memory by ...
通过查看mapping ,查询的排序字段里面包含了status ,但是它是 text类型的。这个字段是我后期新增的字段。测试环境是keyword类型
问题是如何出现的呢。程序里面我调用了es修改mapping,但是正式环境是一直在插入数据。所以索引默认给分配成了 text.
测试环境没有数据插入。所以是直接修改成了 keyword.
如何解决:直接修改 fielddata=true
PUT shanghaidianli_shebei_xunjian/_doc/_mapping
{
"properties": {
“status": {
"type": "text",
"fielddata": true
}
}
}
版权声明:本文为haoweng4800原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。