1. 程式人生 > >Elasticsearch - JAVA -API 多條件查詢資料

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