image.png

    image.png
    通过构建器帮助我构建DSL语句

    image.png

    解析json:

    image.png

    1. @Test
    2. void testMatchAll() throws IOException {
    3. //准备request对象
    4. SearchRequest request = new SearchRequest("hotel");
    5. //准备DSL
    6. request.source().query(QueryBuilders.matchAllQuery());
    7. //发送请求
    8. SearchResponse response = client.search(request, RequestOptions.DEFAULT);
    9. //解析响应的json
    10. SearchHits hits = response.getHits();
    11. //拉取总条数
    12. long value = hits.getTotalHits().value;
    13. //来取文档数组
    14. SearchHit[] hits1 = hits.getHits();
    15. //遍历数组进行反序列化
    16. for (SearchHit documentFields : hits1) {
    17. //读取文档score
    18. String json = documentFields.getSourceAsString();
    19. HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);
    20. System.out.println(hotelDoc);
    21. }

    image.png

    image.png

    DSL查询语句是通过source来构建的
    也就是说source就是这一坨:
    image.png

    QueryBuilders构建查询条件
    image.png
    总结步骤;
    创建SearchRequest对象

    准备Request.source() 也就是DSL
    QueryBuilders来构建查询条件
    传入Request.source()的方法 query()方法

    发送请求得到结果

    解析结果:
    (参考json结果从外到内 逐层解析)