PUT / teacher { "mappings":{ "_doc":{ "properties":{ "age":{ "type":"integer" }, "name":{ "type":"text" }, "address":{ "properties":{ "firstName":{ "type":"keyworld" }, "lastName":{ "type":"keyworld" } } } } } } }
时间: 2023-07-05 13:06:22 浏览: 40
这是一段错误的请求语法。PUT操作应该指定索引和类型,而不是在URL中将它们作为路径参数。正确的语法如下:
```
PUT /teacher
{
"mappings": {
"_doc": {
"properties": {
"age": {
"type": "integer"
},
"name": {
"type": "text"
},
"address": {
"properties": {
"firstName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
}
}
}
}
}
```
这将创建一个名为“teacher”的索引,并在其中定义一个名为“_doc”的类型,包含“age”、“name”和“address”字段。其中,“address”字段是一个嵌套对象,包含“firstName”和“lastName”子字段。注意,“keyword”是正确的字段类型,而不是“keyworld”。
相关问题
resources: add-mappings: false是什么意思
"resources: add-mappings: false" 是指在 Spring Boot 应用程序中,禁用自动添加资源处理程序映射。默认情况下,Spring Boot 会自动为静态资源文件添加处理程序映射,以便可以通过 URL 访问这些文件。但是,如果将 "resources: add-mappings" 属性设置为 false,则可以禁用此功能,这意味着您需要手动配置资源处理程序映射。
validation failed: 1: mapping type is missing
这个错误通常是指在Elasticsearch索引映射中缺少了映射类型。Elasticsearch是一个分布式搜索和分析引擎,它使用文档存储数据,并通过索引和映射定义文档的结构和属性。
在Elasticsearch 6.x版本之前,为每个索引指定一个默认的映射类型是必需的。然而,从Elasticsearch 7.x版本开始,映射类型被废弃了,Elasticsearch只能使用单个固定的映射类型"_doc"。
因此,当你在Elasticsearch 7.x版本或更高版本中创建索引时,如果你没有明确指定映射类型或者指定了旧的映射类型名称,将会出现"validation failed: 1: mapping type is missing"错误。
为了解决这个问题,你需要将旧的映射类型改为"_doc",或者在创建索引时完全省略映射类型。
例如,下面是一个在Elasticsearch 7.x版本中创建索引的示例请求:
PUT /my-index
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "integer"
}
}
}
}
注意,上面的请求中没有映射类型的定义,因为我在Elasticsearch 7.x版本中创建索引时不再需要指定映射类型。
总之,"validation failed: 1: mapping type is missing"错误是由于在新版本的Elasticsearch中使用了旧的映射类型引起的。你可以通过将旧的类型改为"_doc"或完全省略类型来解决这个问题。