添加maven依赖
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>x.x.x</version>
</dependency>
获取客户端
//集群名称如果不是"elasticsearch",则必须配置集群名称
Settings settings = Settings.builder()
.put("cluster.name", "bigdata-ES")
.build();
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("hdp01"), 9300))
.addTransportAddress(new TransportAddress(InetAddress.getByName("hdp02"), 9300))
.addTransportAddress(new TransportAddress(InetAddress.getByName("hdp03"), 9300));
文档API
- 索引文档API
import org.elasticsearch.common.xcontent.XContentBuilder;
//索引文档
try {
IndexResponse response = client.prepareIndex(index, type, id)
//.setSource(json, XContentType.JSON) 使用json格式构建文档
.setSource(
//构建文档
jsonBuilder()
.startObject()
.field("user", "kimchy")
.field("postDate", new Date())
.field("message", "trying out Elasticsearch")
.endObject()
).get();
} catch (IOException e) {
e.printStackTrace();
}
//批量索引文档
BulkRequestBuilder bulkRequest = client.prepareBulk();
try {
bulkRequest.add(client.prepareIndex("twitter", "_doc", "1")
.setSource(
jsonBuilder()
.startObject()
.field("user", "kimchy")
.field("postDate", new Date())
.field("message", "trying out Elasticsearch")
.endObject()
));
bulkRequest.add(client.prepareIndex("twitter", "_doc", "2")
.setSource