(22)ElasticSearch Javaプロジェクト集約演算子は、異なる値を最大値、最小値、平均値、合計値を求めて検索します

  1、年齢フィールドインデックスLIB3の最大値を選択します

@Test
     公共 無効 testAggMax()スローIOExceptionが、InterruptedExceptionある、ExecutionException {
         // クラスタ指定 
        の設定設定= Settings.builder()PUT( "cluster.nameを"、 "マイ・アプリケーションを。" ).Build(); 
         //は、クライアントを作成終了 
        のtransportClientクライアント= 新しい新PreBuiltTransportClient(設定)
                                .addTransportAddress(新新 TransportAddress(InetAddress.getByName( "192.168.43.151")、9300 ));
         // aggMaxが最大年齢求めて、文言を固定されている 
        AggregationBuilder AGG = AggregationBuilders.maxを( "aggMax" )選択図】図( "年齢" );
        //実行クエリが 
        応答をSearchResponse = client.prepareSearch( "LIB3")// インデックスはlibです
                                  .addAggregation(AGG)
                                  に.get(); 
        // 取得結果 
        マックスマックス= response.getAggregations()GET( "aggMax。" );
         // 出力
        するSystem.out.println(max.getValue()); 
        client.close(); 
   }

  2、インデックスLIB3の最低年齢フィールド

@Test
     公共 無効 testAggMin()スローIOExceptionが、InterruptedExceptionある、ExecutionExceptionを{
         // クラスタ指定 
        の設定設定= Settings.builder()PUT( "cluster.name"、 "マイ・アプリケーション。" ).Buildを(); 
         // クライアントを作成終了 
        のtransportClientクライアント= 新しい新PreBuiltTransportClient(設定)
                                .addTransportAddress(新新 TransportAddress(InetAddress.getByName( "192.168.43.151")、9300 ));
         // aggMinが最小年齢のため、文言を固定されている 
        AggregationBuilder AGG = AggregationBuilders.min( "aggMin" )選択図】図( "年齢" );
        //実行クエリが 
        応答をSearchResponse = client.prepareSearch( "LIB3")// インデックスはlibです
                                  .addAggregation(AGG)
                                  に.get(); 
        // 結果を得る 
        分分= response.getAggregations()GET( "aggMin。" );
         // 出力
        するSystem.out.println(min.getValue()); 
        client.close(); 
   }

  3、インデックスLIB3の平均年齢フィールド

@Test
     公共 無効 testAggAvg()スローIOExceptionが、InterruptedExceptionある、ExecutionExceptionを{
         // クラスタ指定 
        の設定設定= Settings.builder()PUT( "cluster.name"、 "マイ・アプリケーション。" ).Buildを(); 
         // クライアントを作成終了 
        のtransportClientクライアント= 新しい新PreBuiltTransportClient(設定)
                                .addTransportAddress(新新 TransportAddress(InetAddress.getByName( "192.168.43.151")、9300は));
         // 見つけ、aggAvgは文言を固定されている平均年齢 
        AggregationBuilder AGG = AggregationBuilders.avg( "aggAvg" )選択図】図( "年齢" );
        //実行クエリが 
        応答をSearchResponse = client.prepareSearch( "LIB3")// インデックスはlibです
                                  .addAggregation(AGG)
                                  に.get(); 
        // 結果を得る 
        平均AVG = response.getAggregations()GET( "aggAvg。" );
         // 出力
        するSystem.out.println(avg.getValue()); 
        client.close(); 
   }

  年齢フィールドシークインデックスとLIB3で4、

@Test
     公共 無効 testAggSum()スローIOExceptionが、InterruptedExceptionある、ExecutionExceptionを{
         // クラスタ指定 
        の設定設定= Settings.builder()PUT( "cluster.name"、 "マイ・アプリケーション。" ).Buildを(); 
         // クライアントを作成終了 
        のtransportClientクライアントは= 新しい新しいPreBuiltTransportClient(設定)
                                .addTransportAddress(新新 TransportAddress(InetAddress.getByName( "192.168.43.151")、9300 ));
         // aggSum文言が固定されており、年齢の合計を取得するための 
        AggregationBuilder AGG = AggregationBuilders.sum( "aggSum" )選択図】図( "年齢" );
        //クエリを実行 
        応答をSearchResponse = client.prepareSearch( "LIB3")// インデックスはlibです
                                  .addAggregation(AGG)
                                  ;に.get()
        // 結果を得る 
        合計response.getAggregations = SUM()GET( "aggSum。" );
         // 出力
        するSystem.out.println(sum.getValue()); 
        client.close(); 
   }

  5、異なる複数の値にageフィールドLIB3指数を求めて

@Test
     公共 無効 testAggCardinality()スローIOExceptionが、InterruptedExceptionある、ExecutionExceptionを{
         // クラスタ指定 
        の設定設定= Settings.builder()PUT( "cluster.name"、 "マイ・アプリケーション。" ).Buildを(); 
         // クライアントを作成終了 
        のtransportClientクライアント= 新しい新しいPreBuiltTransportClient(設定)
                                .addTransportAddress(新しい新しい TransportAddress(InetAddress.getByName( "192.168.43.151")、9300 ));
         // aggCardinalityは、異なる値の複数のフィールドを求めて、文言を固定さ 
        AggregationBuilder AGG = AggregationBuilders。カーディナリティ( "aggCardinality")。フィールド ( "年齢");
         // 実行クエリが 
        応答をSearchResponse = client.prepareSearch( "LIB3")// インデックスはlibです
                                  .addAggregation(AGG) に.get); 
        // 結果を得る 
        カーディナリティカーディナリティ= response.getAggregations(get()は "aggCardinality"。 );
         // 出力
        するSystem.out.println(cardinality.getValue()); 
        client.close(); 
   }

 

おすすめ

転載: www.cnblogs.com/javasl/p/12070429.html