Elasticsearch映射未创建:按官方指南建索引后无映射问题求助
解决Elasticsearch 5.6.6索引映射404问题
嘿,我来帮你理理这个问题——毕竟Elasticsearch 5.x版本的映射和类型规则和后来的版本还是有点不一样的。你遇到的情况大概率是这几个原因之一:
你创建了空索引,未定义
type1的映射
Elasticsearch 5.6.6中,如果你只是发送PUT /test不带请求体,索引会成功创建(返回200),但里面没有任何类型的映射。这时候查询type1的映射自然会返回404,因为这个类型根本不存在于索引中。
解决方法:创建索引时直接定义type1的映射,示例请求如下:PUT http://localhost:9201/test { "mappings": { "type1": { "properties": { "title": { "type": "text" }, "age": { "type": "integer" } } } } }执行完这个请求后,再调用
GET http://localhost:9201/test/_mapping/type1就能看到映射信息了。空索引已创建,未手动添加
type1的映射
如果你已经创建了空的test索引,现在需要先给type1添加映射,再去查询。发送以下请求添加映射:PUT http://localhost:9201/test/_mapping/type1 { "properties": { "content": { "type": "text" } } }映射添加成功后,再查询就不会返回404了。
未向
type1写入过文档,动态映射未触发
Elasticsearch默认开启动态映射,但只有当你向某个类型写入文档时,它才会根据文档字段自动生成映射。你可以先写入一条测试文档来触发:POST http://localhost:9201/test/type1/1 { "test_field": "hello elasticsearch 5.6.6" }写入完成后,再查询
type1的映射,就能看到自动生成的结构了。
最后别忘了确认你的Elasticsearch确实在9201端口运行——可以用GET http://localhost:9201/验证,看看是否返回集群的基本信息,排除端口配置错误的可能。
内容的提问来源于stack exchange,提问作者Tomas Lukac
相关产品推荐
相关产品推荐

