From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java | 82 +++++++++++++--------------------------- 1 files changed, 27 insertions(+), 55 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..83ba2d6 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 @@ -3,15 +3,14 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.TimeUnit; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RequestOptions; -import org.elasticsearch.common.unit.Fuzziness; +import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.index.query.BoolQueryBuilder; -import org.elasticsearch.index.query.MatchQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.index.query.TermQueryBuilder; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.builder.SearchSourceBuilder; @@ -31,66 +30,39 @@ * @param uid 鐢ㄦ埛id * @return */ - public List<ESOrder> queryMatch(String key, String uid) { + public List<ESOrder> query(String key, String uid, List<Integer> listPlatform) { 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) { - List<ESOrder> list = new ArrayList<ESOrder>(); - // 鍟嗗搧鍚嶇О鍖归厤 - BoolQueryBuilder should1 = QueryBuilders.boolQuery().should(QueryBuilders.matchPhraseQuery("orderNo", key)) - .should(QueryBuilders.matchPhraseQuery("goodsName", key)); + // 鍟嗗搧鍚嶇О妯$硦鍏ㄨ瘝鍖归厤 + BoolQueryBuilder should1 = QueryBuilders.boolQuery() + .should(QueryBuilders.wildcardQuery("orderNo.keyword", "*" + key + "*")) + .should(QueryBuilders.wildcardQuery("goodsName.keyword", "*" + key + "*")); // 鐢ㄦ埛id鍖归厤 - BoolQueryBuilder should2 = QueryBuilders.boolQuery().should(QueryBuilders.termQuery("uid", uid)) - .should(QueryBuilders.termQuery("uidDirect", uid)).should(QueryBuilders.termQuery("uidDirect", uid)); + + BoolQueryBuilder should2 = QueryBuilders.boolQuery().should(QueryBuilders.termQuery("uid", uid)); + // .should(QueryBuilders.termQuery("uidDirect", + // uid)).should(QueryBuilders.termQuery("uidDirect", uid)); // 鏌ヨ鍒涘缓 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)); + } + // 鏈�澶ф煡璇㈡暟涓�200 + sourceBuilder.size(200); + // 瓒呮椂20s + sourceBuilder.timeout(new TimeValue(20, TimeUnit.SECONDS)); SearchRequest searchRequest = new SearchRequest(); - searchRequest.indices(index); + searchRequest.indices(getDocument(ESOrder.class)); searchRequest.source(sourceBuilder); try { - SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); + SearchResponse searchResponse = elasticManger.getClient().search(searchRequest, RequestOptions.DEFAULT); SearchHits hits = searchResponse.getHits(); SearchHit[] searchHits = hits.getHits(); Gson gson = new Gson(); -- Gitblit v1.8.0