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类型被取消的主要内容,如果未能解决你的问题,请参考以下文章

Python实战之set学习笔记及简单练习

Python实战之int学习笔记及简单练习

ELK 学习笔记之 elasticsearch Mget操作

Python实战之双向队列deque/queue学习笔记及简单练习

Elasticsearch之Doc Value与Fielddata

学习笔记———Python内置函数dir()