Elasticsearch - JAVA -API 多条件查询数据

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

条件设置

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的批量查询后面深究....

猜你喜欢

转载自blog.csdn.net/weixin_39778417/article/details/85046430