Elasticsearch Java APIの使用(21)-コンビネーションクエリの実装
9413 ワード
組合せクエリーboolQueryを使用した組合せクエリー
constant score query別のクエリーとクエリー.小包クエリーは定数スコアを1つだけ返すのは、各ドキュメントのクエリー実装の組合せクエリーを向上させるのと同じです.
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());
}
}
}