ES21-JAVA API 复合查询

1.constant_score 查询

2.bool 查询

多条件查询,当过个条件满足时返回文档,bool查询由一个或多个字句组成

occurrence描述
must返回的文档必须满足must子句的条件,并且参与计算分值
filter【filter以前时单独的query DSL,现在归入bool query】;子句(查询)必须出现在匹配的文档中。然而,不同于must查询的是——它不参与分数计算。 Filter子句在过滤器上下文(filter context)中执行,这意味着score被忽略并且子句可缓存【所以filter可能更快】
should“权限”比must/filter低。如果没有must或者filter,有一个或者多个should子句,那么只要满足一个就可以返回。minimum_should_match参数定义了至少满足几个子句。
must_not返回的文档必须不满足must_not定义的条件
	/**
	 * 多条件查询
	 */
	public static void boolQuery() {
		
		QueryBuilder query = QueryBuilders.boolQuery()
				.must(QueryBuilders.matchQuery("title", "董事"))//满足“董事”在“title”的分词集合中
				.must(QueryBuilders.wildcardQuery("title", "*审*"))//满足“*审*”通配符匹配“title”
				.filter(QueryBuilders.matchQuery("author", "生物"));//满足“author”匹配“生物”
		
		SearchResponse response = getClient().prepareSearch("telegraph").setQuery(query).setSize(5).get();
		SearchHits hits = response.getHits();
		for (SearchHit searchHit : hits) {
			System.out.println(searchHit.getSourceAsString());
		}
	}

测试

	public static void main(String[] args) {
		boolQuery();
	}

执行结果:

{
  "title":"董事长、3名公司高管和2名中层人员被公安机关依法审查",
  "content":"财联社7月24日讯,长生生物公告称,董事长及部分高管无法正常履职,长春市长春新区公安分局对长春长生生产冻干人用狂犬病疫苗涉嫌违法犯罪案件立案调查,将主要涉案人员公司董事长、3名公司高管和2名中层人员带至公安机关依法审查",
  "author":"长生生物"  
}

3.dis_max查询

4.function_score查询

5.boosting查询

 

转载于:https://my.oschina.net/u/3100849/blog/1862405

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值