概述
一、POM文件引用ES必要依赖
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.6.8</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.6.8</version>
</dependency>
二、连接与释放ES Server
1、对ES操作之前需要创建与ES Server的连接,如下:
Settings settings = Settings.builder().put("cluster.name", "es_cluster").build();
TransportClient client = new PreBuiltTransportClient(settings).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
其中cluster.name对应的Value值是自定义的ES集群名字(关于ES集群搭建,可参考“基于WIN10搭建ES伪集群的实践
”),InetSocketTransportAddress中机器IP对应的是集群主结点IP。
2、对ES操作之后需要释放与ES Server的连接,如下:
if(client != null){
client.close();
}
三、创建索引
client.admin().indices().prepareCreate("est2").get();
创建成功截图如下:
四、创建映射
可以用XContentBuilder或者Json工具构建Json Mapping对象,然后通过ES API创建,比如用XContentBuilder构建Json对象,
{
"mappings": {
"demoMapping": {
"properties": {
"id": {
"type": "long",
"store": true,
"index":"not_analyzed"
},
"title": {
"type": "text",
"store": true,
"index":"analyzed",
"analyzer":"standard"
},
"content": {
"type": "text",
"store": true,
"index":"analyzed",
"analyzer":"standard"
}
}
}
}
}
那么创建映射的语句如下:
PutMappingRequest mapping = Requests.putMappingRequest("est2")
.type("demoMapping").source(builder);
client.admin().indices().putMapping(mapping).get();
其中demoMapping是自定义的映射名字。
五、创建文档
和创建映射类似,需要先构建Json 文档对象,如用XContentBuilder构建Json对象,那么创建文档的语句如下:
client.prepareIndex(“est2”, “demoMapping”, “1”).setSource(builder).get();
其中demoMapping是自定义的映射名字,1是文档对应的id。
如用Json工具建立,需在工程中引入fastjson或jackson工具,通过bean设置值,语句如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DemoMapping {
private Integer id;
private String title;
private String content;
}
最后
以上就是受伤海燕为你收集整理的基于JAVA调用ES API实践索引、映射与文档的操作的全部内容,希望文章能够帮你解决基于JAVA调用ES API实践索引、映射与文档的操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复