Elasticsearch Java APIの使用(21)-コンビネーションクエリの実装

9413 ワード

組合せクエリーboolQueryを使用した組合せクエリー
public class EsBoolQuery throws UnknownHostException{
    public void BoolQuery(TransportClient client){
       //bool      ,must      ,mustNot       ,should      ,filter    
       Querybuilder build = QueryBuilders.boolQuery()
						       .must(QueryBuilders.matchQuery("interests", "changge"))
						       .mustNot(QueryBuilders.,matchQuery("interests", "lvyou"))
						       .should(QueryBuilders.matchQuery("address", "beijing"))
						       .filter(QueryBuilders.rangeQuery("birthday").gte("1990-01-01").format("yyyy-MM-dd"));

       SearchResponse response = client.prepareSearch("lib3")
                                       .setQuery(build)
                                       .get();
       SearchHits hits = response.getHits();
       for(SearchHit hit:hits){
           System.out.println(hit.getSourceAsString());
       }
    }
}

constant score query別のクエリーとクエリー.小包クエリーは定数スコアを1つだけ返すのは、各ドキュメントのクエリー実装の組合せクエリーを向上させるのと同じです.
public class EsConstantScoreQuery throws UnknownHostException{
    public void ConstantScoreQuery(TransportClient client){
       //      Using with Filters
       Querybuilder build = QueryBuilders.constantScoreQuery(FilterBuilders.termFilter("name", "kimchy")).boost(2.0f);*/

       //      With Queries
       Querybuilder build = QueryBuilders.constantScoreQuery(QueryBuilders.termQuery("name", "  3033 ")).boost(2.0f);

       SearchResponse response = client.prepareSearch("lib3")
                                       .setQuery(build)
                                       .get();
       SearchHits hits = response.getHits();
       for(SearchHit hit:hits){
           System.out.println(hit.getSourceAsString());
       }
    }
}