需要用到的jar
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>x-pack-transport</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.3.3</version>
</dependency>
注意
下列示例没有elasticsearch相关DSL命令
HttpEntity entity = new NStringEntity("", ContentType.APPLICATION_JSON);
上面代码中第一个参数为操作elasticsearch的DSL命令
初始化RestClient
public RestClient restClient;
public void init() {
String hostname = "127.0.0.1";
int port = 9200;
String scheme = "http";
HttpHost httpHost = new HttpHost(hostname, port, scheme);
String esUserName = "es登录账号";
String esPassword = "es登录密码";
UsernamePasswordCredentials userPass = new UsernamePasswordCredentials(esUserName, esPassword);
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, userPass);
restClient = RestClient.builder(httpHost).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
}).build();
}
添加数据
HttpEntity entity = new NStringEntity("{\"id\": 1 \"name\": \"小明\"}", ContentType.APPLICATION_JSON);
String method = "PUT";
String endpoint = "/indexes/type/1";// 此处的1对应上面json的ID
Response response = restClient.performRequest(method, endpoint, Collections.<String, String>emptyMap(), entity);
int code = response.getStatusLine().getStatusCode();
String string = EntityUtils.toString(response.getEntity());
修改数据
HttpEntity entity = new NStringEntity("{\"doc\":\"\"}", ContentType.APPLICATION_JSON);
Response response = restClient.performRequest("POST", "/indexes/type/key/_update",
Collections.<String, String>emptyMap(), entity);
int code = response.getStatusLine().getStatusCode();
String string = EntityUtils.toString(response.getEntity());
查询数据(数据集)
HttpEntity entity = new NStringEntity("{}", ContentType.APPLICATION_JSON);
Response response = restClient.performRequest("POST", "/indexes/type/_search",
Collections.singletonMap("pretty", "true"), entity);
int code = response.getStatusLine().getStatusCode();
String str = EntityUtils.toString(response.getEntity());
查询数据(单条)
Response response = restClient.performRequest("GET", "/indexes/type/key",
Collections.singletonMap("pretty", "true"));
int code = response.getStatusLine().getStatusCode();
String str = EntityUtils.toString(response.getEntity());
删除数据(单条)
Response response = restClient.performRequest("DELETE", "/indexes/type/key");
int code = response.getStatusLine().getStatusCode();
String str = EntityUtils.toString(response.getEntity());