Elasticsearch7学习笔记之_doc类型被取消
Posted Jettytomcat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch7学习笔记之_doc类型被取消相关的知识,希望对你有一定的参考价值。
ES7 _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"
以上是关于Elasticsearch7学习笔记之_doc类型被取消的主要内容,如果未能解决你的问题,请参考以下文章
ELK 学习笔记之 elasticsearch Mget操作
Python实战之双向队列deque/queue学习笔记及简单练习