通过构建器帮助我构建DSL语句
解析json:
@Test
void testMatchAll() throws IOException {
//准备request对象
SearchRequest request = new SearchRequest("hotel");
//准备DSL
request.source().query(QueryBuilders.matchAllQuery());
//发送请求
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
//解析响应的json
SearchHits hits = response.getHits();
//拉取总条数
long value = hits.getTotalHits().value;
//来取文档数组
SearchHit[] hits1 = hits.getHits();
//遍历数组进行反序列化
for (SearchHit documentFields : hits1) {
//读取文档score
String json = documentFields.getSourceAsString();
HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);
System.out.println(hotelDoc);
}
DSL查询语句是通过source来构建的
也就是说source就是这一坨:
QueryBuilders构建查询条件
总结步骤;
创建SearchRequest对象
准备Request.source() 也就是DSL
QueryBuilders来构建查询条件
传入Request.source()的方法 query()方法
发送请求得到结果
解析结果:
(参考json结果从外到内 逐层解析)