From c9cbdfa41d645d42eeaa7e06d550d4ef8ac328e7 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期五, 03 一月 2020 12:15:08 +0800 Subject: [PATCH] redis关键词 --- fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java | 57 ++++++++++++--------------------------------------------- 1 files changed, 12 insertions(+), 45 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java b/fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java index 16d8498..d10ae20 100644 --- a/fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java +++ b/fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java @@ -31,49 +31,7 @@ * @param uid 鐢ㄦ埛id * @return */ - public List<ESOrder> queryMatch(String key, String uid) { - List<ESOrder> list = new ArrayList<ESOrder>(); - - // 鍟嗗搧鍚嶇О鍖归厤 - MatchQueryBuilder match1 = new MatchQueryBuilder("goodsName", key).fuzziness(Fuzziness.AUTO); - // 璁㈠崟鍙峰尮閰� - MatchQueryBuilder match2 = new MatchQueryBuilder("orderNo", key).fuzziness(Fuzziness.AUTO); - - TermQueryBuilder term1 = QueryBuilders.termQuery("uid", uid); - // 涓婄骇 - TermQueryBuilder term2 = QueryBuilders.termQuery("uidDirect", uid); - // 涓婁笂绾� - TermQueryBuilder term3 = QueryBuilders.termQuery("uidIndirect", uid); - - SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); - sourceBuilder.query(match1).query(match2).query(term1).query(term2).query(term3); - - SearchRequest searchRequest = new SearchRequest(); - searchRequest.indices(index); - searchRequest.source(sourceBuilder); - try { - SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); - SearchHits hits = searchResponse.getHits(); - SearchHit[] searchHits = hits.getHits(); - Gson gson = new Gson(); - for (SearchHit hit : searchHits) { - String content = hit.getSourceAsString(); - list.add(gson.fromJson(content, ESOrder.class)); - } - } catch (IOException e) { - e.printStackTrace(); - } - return list; - } - - /** - * 鏌ヨ鍖归厤 - * - * @param key 鎼滅储璇� - * @param uid 鐢ㄦ埛id - * @return - */ - public List<ESOrder> query(String key, String uid) { + public List<ESOrder> query(String key, String uid, List<Integer> listPlatform) { List<ESOrder> list = new ArrayList<ESOrder>(); // 鍟嗗搧鍚嶇О鍖归厤 BoolQueryBuilder should1 = QueryBuilders.boolQuery().should(QueryBuilders.matchPhraseQuery("orderNo", key)) @@ -84,10 +42,19 @@ // 鏌ヨ鍒涘缓 SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); - sourceBuilder.query(QueryBuilders.boolQuery().must(should1).must(should2)); + + if (listPlatform == null || listPlatform.size() == 0) { + sourceBuilder.query(QueryBuilders.boolQuery().must(should1).must(should2)); + } else { + BoolQueryBuilder should3 = QueryBuilders.boolQuery(); + for (Integer platform: listPlatform) { + should3.should(QueryBuilders.termQuery("platform", platform)); + } + sourceBuilder.query(QueryBuilders.boolQuery().must(should1).must(should2).must(should3)); + } SearchRequest searchRequest = new SearchRequest(); - searchRequest.indices(index); + searchRequest.indices(getDocument(ESOrder.class)); searchRequest.source(sourceBuilder); try { SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); -- Gitblit v1.8.0