使用Java操作elasticsearch进行增删改查

需要用到的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命令

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());

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值