/** * 求并集 * { "query" : { "bool" : { "should" : { "terms" : { "categoryIds" : [ 206 ] } } } }, "post_filter" : { "bool" : { "should" : { "terms" : { "artId" : [ [ 1425299, 651912, 1448123, 1438725, 654688, 655630, 654236, 656040, 656052, 656048, 654228, 654690, 654230, 656032, 1442433, 1440971, 1441981, 1439693, 1423263 ] ] } } } } } */ public void searchsQueryAndFilter3() { SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder query = QueryBuilders.boolQuery(); query.should(QueryBuilders.inQuery("categoryIds", Lists.newArrayList(206))); BoolFilterBuilder fileter =FilterBuilders.boolFilter(); fileter.should(FilterBuilders.inFilter("artId", Lists.newArrayList(1425299, 651912, 1448123, 1438725, 654688, 655630, 654236, 656040, 656052, 656048, 654228, 654690, 654230, 656032, 1442433, 1440971, 1441981, 1439693, 1423263 ))); searchSourceBuilder.postFilter(fileter); searchSourceBuilder.query(query); System.out.println(searchSourceBuilder); } /** * 没权重 should * { "post_filter" : { "bool" : { "should" : [ { "terms" : { "artId" : [ [ 1425299, 651912, 1448123, 1438725, 654688, 655630, 654236, 656040, 656052, 656048, 654228, 654690, 654230, 656032, 1442433, 1440971, 1441981, 1439693, 1423263 ] ] } }, { "query" : { "bool" : { "should" : { "terms" : { "categoryIds" : [ 206 ] } } } } } ] } } } */ public void searchsQueryAndFilter2() { SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder query = QueryBuilders.boolQuery(); query.should(QueryBuilders.inQuery("categoryIds", Lists.newArrayList(206))); BoolFilterBuilder fileter =FilterBuilders.boolFilter(); fileter.should(FilterBuilders.inFilter("artId", Lists.newArrayList(1425299, 651912, 1448123, 1438725, 654688, 655630, 654236, 656040, 656052, 656048, 654228, 654690, 654230, 656032, 1442433, 1440971, 1441981, 1439693, 1423263 ))); fileter.should(FilterBuilders.queryFilter(query)); searchSourceBuilder.postFilter(fileter); System.out.println(searchSourceBuilder); } /** * 有权重 should * { "query" : { "bool" : { "should" : [ { "terms" : { "categoryIds" : [ 206 ] } }, { "filtered" : { "query" : { "bool" : { "must" : { "match_all" : { } } } }, "filter" : { "bool" : { "should" : { "terms" : { "artId" : [ [ 1425299, 651912, 1448123, 1438725, 654688, 655630, 654236, 656040, 656052, 656048, 654228, 654690, 654230, 656032, 1442433, 1440971, 1441981, 1439693, 1423263 ] ] } } } } } } ] } } } */ public void searchsQueryAndFilter1() { SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder query = QueryBuilders.boolQuery(); query.should(QueryBuilders.inQuery("categoryIds", Lists.newArrayList(206))); BoolQueryBuilder query2 = QueryBuilders.boolQuery(); query2.must(QueryBuilders.matchAllQuery()); BoolFilterBuilder fileter =FilterBuilders.boolFilter(); fileter.should(FilterBuilders.inFilter("artId", Lists.newArrayList(1425299, 651912, 1448123, 1438725, 654688, 655630, 654236, 656040, 656052, 656048, 654228, 654690, 654230, 656032, 1442433, 1440971, 1441981, 1439693, 1423263 ))); query.should(QueryBuilders.filteredQuery(query2, fileter)); searchSourceBuilder.query(query); System.out.println(searchSourceBuilder); }
es Queries and filters demo
猜你喜欢
转载自m635674608.iteye.com/blog/2285226
今日推荐
周排行