Elasticsearch - JAVA -API 多條件查詢資料
阿新 • • 發佈:2018-12-25
只為記錄這個批量查詢方法
條件設定
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的批量查詢後面深究....