只为记录这个批量查询方法

条件设置

searchSourceBuilder.query(QueryBuilders.boolQuery()
                .should(QueryBuilders.matchQuery(\"name\", filter.getKeyWord()).analyzer(\"ik_max_word\"))
                .should(QueryBuilders.matchQuery(\"userNickName\", filter.getKeyWord()).analyzer(\"ik_max_word\"))
        ).from((filter.getPageNum() - 1) * filter.getPageSize())
         .size(filter.getPageSize());

查询的实现

firstSearchRequest.source(searchSourceBuilder);
        request.add(firstSearchRequest);

        try {
            sr = client.msearch(request, RequestOptions.DEFAULT);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //hit对象结果集
        for (MultiSearchResponse.Item item : sr.getResponses()) {
            SearchResponse response = item.getResponse();
            SearchHits hits = response.getHits();
            for (SearchHit hit: hits){
                EsResultData model = new EsResultData(hit.getId(),hit.getIndex(),hit.getType(),
                        hit.getScore(),hit.getSourceAsMap());
                list.add(model);
            }
            System.out.println(\"搜到和【\"+filter.getKeyWord()+\"】有关的对象共:\"+response.getHits().getTotalHits()+\"条\");
            resultModel = new EsResultModel(response.getHits().getTotalHits(),list);
        }
        return resultModel;
        ```
es的批量查询后面深究....
收藏 打印