用JAVA查询ES使用RestClientBuilder连接
时间: 2024-05-02 10:17:53 浏览: 17
以下是使用Java和RestClientBuilder连接Elasticsearch进行查询的示例代码:
```java
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import java.io.IOException;
public class ElasticsearchQueryExample {
public static void main(String[] args) throws IOException {
// 创建RestClientBuilder对象
RestClientBuilder builder = RestClient.builder(
new HttpHost("localhost", 9200, "http"));
// 创建RestHighLevelClient对象
RestHighLevelClient client = new RestHighLevelClient(builder);
// 创建SearchSourceBuilder对象
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchSourceBuilder.sort(SortBuilders.fieldSort("price").order(SortOrder.ASC));
// 执行查询
SearchResponse searchResponse = client.search(new SearchRequest("products").source(searchSourceBuilder), RequestOptions.DEFAULT);
// 处理查询结果
SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
// 关闭连接
client.close();
}
}
```
以上代码首先创建了一个RestClientBuilder对象,然后使用该对象创建一个RestHighLevelClient对象。接着,创建一个SearchSourceBuilder对象,设置查询条件和排序方式。最后,使用RestHighLevelClient对象执行查询,并处理查询结果。最后,关闭连接。