Es在查询时其主要步骤如下:
1,构建SearchRequest请求对象,指定索引库, 2,构建SearchSourceBuilder查询对象 3,构建QueryBuilder对象指定查询方式和查询条件 4,将QuseryBuilder对象设置到SearchSourceBuilder对象中 5,将SearchSourceBuilder设置到SearchRequest中 6,调用方法查询数据 7,解析返回结果
代码如下:
package com.xiaohui;
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.MatchAllQueryBuilder;
import org.elasticsearch.index.query.MatchQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.query.QuerySearchRequest;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.io.IOException;
public class ESTest2 {
private RestHighLevelClient client;
@BeforeEach
public void getClient(){
client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("192.168.0.122", 9200, "http")));
}
@Test
public void matchDoc(){
//1,构建SearchRequest请求对象,指定索引库
SearchRequest searchRequest = new SearchRequest("huizi");
//2,构建SearchSourceBuilder查询对象
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
//3,构建QueryBuilder对象指定查询方式和查询条件
QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", "小米");
//4,将QuseryBuilder对象设置到SearchSourceBuilder对象中
sourceBuilder.query(queryBuilder);
//5,将SearchSourceBuilder设置到SearchRequest中
searchRequest.source(sourceBuilder);
try {
//6,调用方法查询数据
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//7,解析返回结果
SearchHit[] hits = searchResponse.getHits().getHits();
for (int i = 0; i <hits.length ; i++) {
System.out.println("返回的结果: "+hits[i].getSourceAsString());
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void matchAllDoc(){
//1,构建SearchRequest请求对象,指定索引库
SearchRequest searchRequest = new SearchRequest("huizi");
//2,构建SearchSourceBuilder查询对象
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
//3,构建QueryBuilder对象指定查询方式和查询条件
QueryBuilder queryBuilder = QueryBuilders.matchAllQuery();
//4,将QuseryBuilder对象设置到SearchSourceBuilder对象中
sourceBuilder.query(queryBuilder);
//5,将SearchSourceBuilder设置到SearchRequest中
searchRequest.source(sourceBuilder);
try {
//6,调用方法查询数据
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
//7,解析返回结果
SearchHit[] hits = searchResponse.getHits().getHits();
for (int i = 0; i <hits.length ; i++) {
System.out.println("返回的结果: "+hits[i].getSourceAsString());
}
} catch (IOException e) {
e.printStackTrace();
}
}
@AfterEach
public void close(){
if(null!= client){
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
版权声明:本文为liuhenghui5201原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。