天天看點

Spring Cloud 中使用 ES(elasticsearch ) 7.1.1進行模糊搜尋

Spring Cloud 中整合ES上篇已經處理了,這篇簡單記錄在ES中進行模糊搜尋查詢的試下

  1. 單字段模糊搜尋
QueryBuilders.wildcardQuery("PEOPLE_NICKNAME.keyword", "*"+req.getNickName()+"*");
           

其中使用了通配符查詢,注意使用搜尋是要在字段名後邊加個**.keywoord**,然後将入參 req.getNickName 進行組裝。

2. 多字段模糊查詢(多個字段中中任意符合條件的)

QueryBuilder     moreLikeThisTextQuery = QueryBuilders.wildcardQuery("MSG_TEXT.keyword","*"+req.getContent()+"*");
   QueryBuilder     moreLikeThisNickNameQuery = QueryBuilders.wildcardQuery("PEOPLE_NICKNAME.keyword", "*"+req.getContent()+"*");
   QueryBuilder     moreLikeThisSignatureQuery = QueryBuilders.wildcardQuery("PEOPLE_SIGNATURE.keyword", "*"+req.getContent()+"*");
     BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
    	  boolQueryBuilder.should(moreLikeThisTextQuery);
          boolQueryBuilder.should(moreLikeThisNickNameQuery);
          boolQueryBuilder.should(moreLikeThisSignatureQuery);
          boolQueryBuilder.minimumShouldMatch(1);
           

其中要注意的是 boolQueryBuilder.minimumShouldMatch(1);

這句的意思是至少符合條件的條數,如果不寫這句的話,在整個查詢中隻要有任意符合條件的,将不在觸發該條件查詢。

大概模糊查詢就這樣啦!

繼續閱讀