一、POM文件引用ES必要依赖
>
>org.elasticsearch >
>elasticsearch >
>5.6.8 >
>
>
>org.elasticsearch.client >
>transport >
>5.6.8 >
>
二、连接与释放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设置值,语句如下:
>
>com.alibaba >
>fastjson >
>1.2.62 >
>
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DemoMapping {
private Integer id;
private String title;
private String content;
}