es Queries and filters demo

	
    /**
     * 求并集  
     * {
  "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);
}
	

猜你喜欢

转载自m635674608.iteye.com/blog/2285226