ElasticSearch 필요한 데이터 쿼리를 반환하고 더 조건이 충족된다

요구 사항 :

 

 자바 백엔드 코드 :

공공 R 쿼리 (@RequestParam (이름 = " APP_ID " ) 롱 APPID, 
                        @RequestParam (이름 = " CHANNEL_ID " ) 긴 채널 ID, 
                        @RequestParam (이름 = " 국가 " ) 문자열 국가, 
                        @RequestParam (이름 = " 날짜 " ) 문자열 날짜) { 
        SearchRequest에 SearchRequest에는 = 새로운 SearchRequest에 ( " peo_publisher_report을 " ); 
        SearchSourceBuilder searchSourceBuilder =새로운 SearchSourceBuilder (); 
        BoolQueryBuilder boolQuery = QueryBuilders.boolQuery ();
        만약 (! = APPID ) { 
            boolQuery.must (QueryBuilders.matchQuery ( " APP_ID " , APPID)); 
        } 
        경우 (채널 ID =! ) { 
            boolQuery.must (QueryBuilders.matchQuery ( " CHANNEL_ID " , 채널 ID)); 
        } 
        경우 (국가! = null이 ) { 
            boolQuery.must (QueryBuilders.matchQuery ( " 국가 "  , 국가));
        }
        SimpleDateFormat의 형식 =   새로운 하여 SimpleDateFormat ( " YYYY-MM-DD " );
        경우 (날짜! = null이 ) {
             시도 { 
                boolQuery.must (QueryBuilders.rangeQuery ( " statistical_time " ). 에서 (format.parse (날짜) .getTime ())에 (. 새로운 날짜 () 다음 getTime ()).); 
            } 캐치 (ParseException가 전자) { 
                e.printStackTrace (); 
            } 
        }  
        searchSourceBuilder.query (boolQuery);
        searchRequest.source (searchSourceBuilder); 
        시도 { 
            SearchResponse 검색을 = client.search (SearchRequest에, RequestOptions.DEFAULT);
            반환 . R.ok () 넣어 ( " 데이터 " , search.toString ()); 
        } 캐치 (IOException이 전자) { 
            e.printStackTrace (); 
            반환 . R.error () 넣어 ( " 오류 " , e.getMessage ()); 
        } 
    }

초급 말이지, 다중 기준 쿼리,이 기록을 달성하는 방법을 모르겠어요.

늦은 프런트 엔드 코드를 기입 ~ ~ ~ ~

추천

출처www.cnblogs.com/must-grow/p/12109331.html