Elasticsearch5 java 设置mappings

作者 fishyou | 发布于2017年10月18日 | 阅读数:1076

看《Elasticsearch技术解析与实践》的时候遇到的,代码如下面的截图,功能是使用Java API创建mapping映射。现在的问题是
1.如果去掉注释的代码,settings的内容是写入mapping映射了,但是后面的字段的类型都没有写入,如图3,不明白为什么
2.如果保留注释的代码,运行代码,直接抛出异常,如图2,这又是为什么
 
补充,服务端我用的是Elasticsearch5,mvn依赖是
<dependency> 
<groupId>org.elasticsearch.client</groupId>
 <artifactId>transport</artifactId>
 <version>5.5.0</version> 
</dependency>
 
QQ截图20171018111430.png QQ截图20171018111722.png QQ截图20171018111927.png
已邀请:

kennywu76 - wood@Ctrip

赞同来自: laoyang360 fishyou exceptions

json设置的嵌套不对,正确写法参考下面截图:

demo.jpg

 
 
生成的设置是下面这样的。  将代码里生成的json对象dump出来对比看看就应该明白错误在什么地方。
{
"twitter": {
"aliases": {},
"mappings": {
"tweet": {
"properties": {
"age": {
"type": "integer"
},
"author": {
"type": "text"
}
}
}
},
"settings": {
"index": {
"creation_date": "1508310335832",
"number_of_shards": "1",
"number_of_replicas": "0",
"uuid": "hOAnO_UZTXKrOadpl5Wdvg",
"version": {
"created": "5060099"
},
"provided_name": "twitter"
}
}
}
}

 
另外可以参考官方文档里创建索引和添加设置的方法,可能更清晰一些:
https://www.elastic.co/guide/e ... .html
 

要回复问题请先登录注册