Elasticsearch7学习笔记之_doc类型被取消
0x00 概述
在使用ES7设置mapping的时候,发现报错如下:
The mapping definition cannot be nested under a type [_doc] unless include_type_name is set to true
0x00 问题复现
PUT my_index { "settings": { "analysis": { "char_filter": { "my_char_filter": { "type": "mapping", "mappings": [ ", => " ] } }, "filter": { "my_synonym_filter": { "type": "synonym", "expand": true, "synonyms": [ "lileilei => leileili", "hanmeimei => meimeihan" ] } }, "analyzer": { "my_analyzer": { "tokenizer": "my_tokenizer", "char_filter": [ "my_char_filter" ], "filter": [ "my_synonym_filter" ] } }, "tokenizer": { "my_tokenizer": { "type": "pattern", "pattern": "\\;" } } } }, "mappings": { "_doc": { "properties": { "text": { "type": "text", "analyzer": "my_analyzer" } } } } }
报错详情
{ "error" : { "root_cause" : [ { "type" : "illegal_argument_exception", "reason" : "The mapping definition cannot be nested under a type [_doc] unless include_type_name is set to true." } ], "type" : "illegal_argument_exception", "reason" : "The mapping definition cannot be nested under a type [_doc] unless include_type_name is set to true." }, "status" : 400 }
0x02 解决
es从6跨越到7,还是有些变化的;在es7中已经在内部取消了_doc这类type;
把上面的语句中删除_doc就行了,改成如下:
PUT my_index { "settings": { "analysis": { "char_filter": { "my_char_filter": { "type": "mapping", "mappings": [ ", => " ] } }, "filter": { "my_synonym_filter": { "type": "synonym", "expand": true, "synonyms": [ "lileilei => leileili", "hanmeimei => meimeihan" ] } }, "analyzer": { "my_analyzer": { "tokenizer": "my_tokenizer", "char_filter": [ "my_char_filter" ], "filter": [ "my_synonym_filter" ] } }, "tokenizer": { "my_tokenizer": { "type": "pattern", "pattern": "\\;" } } } }, "mappings": { "properties": { "text": { "type": "text", "analyzer": "my_analyzer" } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-08-26 Prometheus监控学习笔记之Prometheus 2.x版本的常用变化