ElasticSearchは、必要なデータクエリを返すと、より多くの条件が満たされています

要件:

 

 Javaのバックエンドのコード:

公共 Rクエリー(@RequestParam(名= " APP_ID " )ロングのAppID、
                        @RequestParam(名前 = " CHANNEL_ID " )ロングchannelId、
                        @RequestParam(名前 = " " )文字列の国、
                        @RequestParam(名前 = " 日付" )文字列日付){ 
        searchRequest searchRequest = 新しい searchRequest(" peo_publisher_report " )。
        SearchSourceBuilder searchSourceBuilder =新しいSearchSourceBuilder(); 
        BoolQueryBuilder boolQuery = QueryBuilders.boolQuery()。
        もし(!APPID = NULL ){ 
            boolQuery.must(QueryBuilders.matchQuery(" APP_ID " 、APPID))。
        } 
        であれば(channelId!= NULL ){ 
            boolQuery.must(QueryBuilders.matchQuery(" CHANNEL_ID " 、channelId))。
        } 
        場合(国!= nullの){ 
            boolQuery.must(QueryBuilders.matchQuery(" " 、国))。
        } 
        のSimpleDateFormat形式 =   新しいてSimpleDateFormat(" YYYY-MM-DD " )。
        もし(!日付= ヌル){
             試み{ 
                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()); 
        } 
    }

初心者のESは、多基準クエリ、このレコードを達成する方法がわかりません。

後期フロントエンドのコードを埋める~~~~

おすすめ

転載: www.cnblogs.com/must-grow/p/12109331.html