elasticsearch-rest-high-level-client
1.官方推荐使用的,lower将来不推荐使用
2.The High Level Client is guaranteed to be able to communicate with any Elasticsearch node running on the same major version and greater or equal minor version
client版本与elastic大版本相同即可(elastic小版本可大于或等于client)
maven:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.5.1</version>
</dependency>
1.创建 RestHighLevelClient
private static RestHighLevelClient getClient(){
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http"),
new HttpHost("localhost", 9201, "http")));
return client;
}
2 Get API
private static GetRequest getRequest(String index,String type,String id){
GetRequest request = new GetRequest(index,type,id);
return request;
}
3.小例子
public static void main(String[] args) {
try {
RestHighLevelClient client = getClient();
GetRequest request = getRequest("bank", "_doc", "5bf65db3c52b4ae34475a18f");
GetResponse response = client.get(request, RequestOptions.DEFAULT);
if(response.isExists()){
long version = response.getVersion();
String sourceAsString = response.getSourceAsString();
Map<String, Object> sourceAsMap = response.getSourceAsMap();
byte[] sourceAsBytes = response.getSourceAsBytes();
System.out.println(sourceAsString);
}
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Search API
SearchRequest searchRequest = new SearchRequest("bank");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchRequest.source(searchSourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = response.getHits();
SearchHit[] hitsArray = hits.getHits();
for(SearchHit tmp :hitsArray){
String sourceAsString = tmp.getSourceAsString();
System.out.println(sourceAsString);
}