elasticsearch -java client介绍

本文介绍了elasticsearch Java high level rest client的基本使用,索引的创建,查询,删除,修改操作,java 如何操作elasticsearch

elasticsearch支持的cient

参考连接:https://www.elastic.co/guide/en/elasticsearch/client/index.html

elasticsearch client



java high level rest client

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html

java maven工程中引入相应jar依赖包

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.17.6</version>
</dependency>

Gradle管理的工程引入依赖

dependencies {
    compile 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.17.6'
}

es java client初识化

RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(
                new HttpHost("localhost", 9200, "http"),
                new HttpHost("localhost", 9201, "http")));

关闭client代码

client.close();

elasticsearch带用户校验的client连接方式

CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("esuser", "espasswd"));
client = new RestHighLevelClient(RestClient.builder(new HttpHost("http://xxxxxx", 9200))
  .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {

    @Override
	public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
		httpClientBuilder.disableAuthCaching();
		return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
	}
}));



es索引创建

json串形式数据

IndexRequest request = new IndexRequest("posts");
request.id("1");
String jsonString = "{" +
        "\"user\":\"kimchy\"," +
        "\"postDate\":\"2013-01-30\"," +
        "\"message\":\"trying out Elasticsearch\"" +
        "}";
request.source(jsonString, XContentType.JSON);

map类型数据

Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("user", "kimchy");
jsonMap.put("postDate", new Date());
jsonMap.put("message", "trying out Elasticsearch");
IndexRequest indexRequest = new IndexRequest("posts")
    .id("1").source(jsonMap);


简单数据查询

GetRequest request = new GetRequest("posts","1"); //posts :索引名 , 1:索引ID

GetResponse getResponse = client.get(request, RequestOptions.DEFAULT);
String message = getResponse.getField("message").getValue(); //获取查询数据字段



删除数据

DeleteRequest request = new DeleteRequest("posts","1"); //posts :索引名, 1:索引ID

DeleteResponse deleteResponse = client.delete(request, RequestOptions.DEFAULT);



数据更新

UpdateRequest request = new UpdateRequest("posts", "1");
String jsonString = "{" +
        "\"updated\":\"2017-01-01\"," +
        "\"reason\":\"daily update\"" +
        "}";
request.doc(jsonString, XContentType.JSON);

//map类型数据
Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("updated", new Date());
jsonMap.put("reason", "daily update");
UpdateRequest request = new UpdateRequest("posts", "1")
        .doc(jsonMap);


//执行动作
UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT);

更多关于elasticsearch内容参考

本文地址:https://www.catroom.com.cn/article/198

上一篇 下一篇


推荐文章

评论
说点什么吧?

发表评论

取消回复
  最新文章