记一次elasticsearch,es修改mapping导致查询失败的错误。
环境说明:es 6.8
问题是这样的,查询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
1 2 3 4 5 6 7 8 9 | PUT shanghaidianli_shebei_xunjian/_doc/_mapping { "properties" : { “status": { "type" : "text" , "fielddata" : true } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理