(24)ElasticSearch Javaプロジェクトのポートフォリオのクエリの例

  クエリフィールドは長葛市の利益が含まれているとlvyouが含まれていない、またはアドレスフィールドがbeiジン文書が含まれており、誕生日の前に、両方の必須会う> =「1980年1月1日」

@Test
     公共 無効 testBoolQuery()スローIOExceptionが、InterruptedExceptionある、ExecutionExceptionを{
         // クラスタ指定 
        の設定設定= Settings.builder()PUT( "cluster.name"、 "マイ・アプリケーション。" ).Buildを(); 
         // クライアントを作成終了 
        のtransportClientクライアント= 新しい新PreBuiltTransportClient(設定)
                                .addTransportAddress(新新 TransportAddress(InetAddress.getByName(「192.168.43.151」)、9300 ));
         // クエリオブジェクトを作成し、クエリフィールドが長葛市の利益が含まれているとlvyouが含まれていない、またはアドレスフィールドが含まれていますBEIジン文書、および誕生日の前に、両方の必須会う> =「1980年1月1日」 
        QueryBuilder QB =QueryBuilders.boolQuery()
                          .must(QueryBuilders.matchQuery( "利益"、 "長葛市" ))
                          .mustNot(QueryBuilders.matchQuery( "利益"、 "lvyou" ))
                          .should(QueryBuilders.matchQuery( "アドレス"、「BEIジン」))
                          .filter(QueryBuilders.rangeQuery( "誕生日")GTE( "1980年1月1日")形式(。 "YYYY-MM-DD" ));
        // 执行查询 
        SearchResponse SR = client.prepareSearch( "LIB3" 
                                  .setQuery(QB)
                                  に.get();
        
        SearchHitsヒット= sr.getHits();
        以下のために(SearchHitヒット:ヒットを){
             // 输出JSON 
            するSystem.out.println(hit.getSourceAsString());
            // 输出JSON的キー与価値 
            地図<文字列、オブジェクト>マップ= hit.getSourceAsMap();
            (文字列キー:map.keySet()){ 
                System.out.printlnは(キー + "=" + map.get(キー))。
            } 
        } 
        )(client.close。
   }

おすすめ

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