package org.nl; import org.apache.http.HttpHost; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.io.IOException; import java.util.Map; /** * @author ldjun * @version 1.0 * @date 2023年02月06日 18:49 * @desc desc */ @Configuration public class ElasticSearchClientConfig { //配置RestHighLevelClient依赖到spring容器中待用 @Bean public RestHighLevelClient restHighLevelClient() { RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( //绑定本机,端口,协议,如果是ES集群,就配置多个 new HttpHost("127.0.0.1", 9200, "http"))); return client; } public static void main(String[] args) throws IOException { // 指定ip 端口 HttpHost[] httpHosts = {new HttpHost("47.111.78.178", 27017, "http")}; RestHighLevelClient restHighLevelClient = new RestHighLevelClient(RestClient.builder(httpHosts)); SearchRequest searchRequest = new SearchRequest("logs-2023-02-06"); SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); sourceBuilder.query(QueryBuilders.matchQuery("_id", "HzAeJoYBlkwLvExN1Vg4")); searchRequest.source(sourceBuilder); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); RestStatus restStatus = searchResponse.status(); System.out.println(restStatus); if (restStatus == RestStatus.OK) { SearchHits searchHits = searchResponse.getHits(); for (SearchHit searchHit: searchHits) { System.out.println("id:" + searchHit.getId()); System.out.println("index:" + searchHit.getIndex()); System.out.println("score:" + searchHit.getScore()); Map map = searchHit.getSourceAsMap(); System.out.println("name:" + (String) map.get("name")); System.out.println("city:" + (String) map.get("city")); System.out.println("price:" + (Double) map.get("price")); } } restHighLevelClient.close(); } }