0
点赞
收藏
分享

微信扫一扫

es使用总结

腾讯优测 2022-02-16 阅读 89

### es使用总结:

1. 创建mapping
    
    参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/mapping.html
2. 创建链接

```
参考:
https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/connecting.html

https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/7.16/_other_authentication_methods.html

RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost("host", "port", "http"));
        restClientBuilder.setDefaultHeaders(new BasicHeader[]{new BasicHeader("Authorization",
        "ApiKey " + apiKeyAuth)});
        restClientBuilder.setHttpClientConfigCallback(httpClientBuilder -> {
            httpClientBuilder.setMaxConnTotal(100);
            httpClientBuilder.setMaxConnPerRoute(100);
            return httpClientBuilder;
        });

RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);

```

3. 判断索引是否存在


```
GetIndexRequest getIndexRequest = new GetIndexRequest("索引名");
try {
    return restHighLevelClient.indices().exists(getIndexRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
    e.printStackTrace();
}
```

4. 创建索引


```
https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/api-conventions.html

ElasticsearchClient client = ...
CreateIndexResponse createResponse = client.indices().create(
    new CreateIndexRequest.Builder()
        .index("my-index")
        .aliases("foo",
            new Alias.Builder().isWriteIndex(true).build()
        )
        .build()
);
```

5. 删除索引

```
https://artifacts.elastic.co/javadoc/co/elastic/clients/elasticsearch-java/7.16.3/co/elastic/clients/elasticsearch/indices/DeleteIndexRequest.html

https://www.elastic.co/guide/en/elasticsearch/reference/7.10/indices-delete-index.html

DeleteIndexRequest request = new DeleteIndexRequest(indexName);
AcknowledgedResponse delete = restHighLevelClient.indices().delete(request, RequestOptions.DEFAULT);

```

6. 索引数据


```
EsWriteResponse result = EsWriteResponse.builder().code(EsWriteResponse.SUCCESS).build();
IndexRequest request = new IndexRequest(indexName, "doc", id);
request.source(json, XContentType.JSON);

IndexResponse indexResponse = null;
try {
    indexResponse = restHighLevelClient.index(request, RequestOptions.DEFAULT);
    handleResponse(indexResponse);
} catch (IOException e) {
    result.setCode(EsWriteResponse.ES_FAIL);
    e.printStackTrace();
}

log.info("indexData:{}, response:{}", json, indexResponse);
return result;

private void handleResponse(DocWriteResponse response) {
    if (response == null || response.getShardInfo().getTotal() == response.getShardInfo().getSuccessful()) {
        return;
    }

    if (response.getShardInfo().getFailed() > 0) {
        for (ReplicationResponse.ShardInfo.Failure failure : response.getShardInfo().getFailures()) {
            log.warn("document fail reason:{}", failure.reason());
        }
    }
}
```

7. 删除数据


```
https://artifacts.elastic.co/javadoc/co/elastic/clients/elasticsearch-java/7.16.3/co/elastic/clients/elasticsearch/core/package-summary.html

EsWriteResponse result = EsWriteResponse.builder().code(EsWriteResponse.SUCCESS).build();

DeleteRequest request = new DeleteRequest(indexName, "doc", id);
request.timeout(TimeValue.timeValueMillis(800));
DeleteResponse response;
try {
    response = SearchClient.getInstance().getRestHighLevelClient().delete(request, RequestOptions.DEFAULT);
    log.info("deleteData,id:{}, response:{}", id, response);
} catch (IOException e) {
     result.setCode(EsWriteResponse.ES_FAIL);
    e.printStackTrace();
}

return result;


```

8. 查询数据


```
GetRequest request = new GetRequest(indexName, "doc", id);

//可选参数设置
request.fetchSourceContext(FetchSourceContext.DO_NOT_FETCH_SOURCE);
String[] includes = new String[]{"*"};
String[] excludes = Strings.EMPTY_ARRAY;
FetchSourceContext fetchSourceContext = new FetchSourceContext(true, includes, excludes);
request.fetchSourceContext(fetchSourceContext);

//同步执行
GetResponse getResponse = restHighLevelClient.get(request, RequestOptions.DEFAULT);
String s = getResponse.getSourceAsString();
log.info("getData,id:{}, data:{}", id, s);

```

举报

相关推荐

ES使用命令说明总结

ES总结

es相关总结

es的总结

es6总结

0 条评论