五:elasticsearch之bool查询

一:bool查询通过must,must_not以及should参数来接受多个查询

参数1:must 必须匹配

参数2:must_not 必须不匹配

参数3:should 默认情况下,should语句一个都不要求匹配,只有一个特例:如果查询中没有must语句,那么至少要匹配一个should语句

例如:

GET / my_index / my_type / _search

{

	"query": {

		"bool": {

			"must": {
				"match": {
					"title": "quick"
				}
			},

			"must_not": {
				"match": {
					"title": "lazy"
				}
			},

			"should": [

				{
					"match": {
						"title": "brown"
					}
				},

				{
					"match": {
						"title": "dog"
					}
				}

			]

		}

	}

}

 

上面语句的意思是说 title必须有quick字符串但是是不能有lazy字符串,brown和dog可以有也可以没有,如果有那么相关的更高

正如我们可以控制match查询的精度,我们也能够通过minimum_should_match参数来控制should语句需要匹配的数量,该参数可以是一个绝对数值或者一个百分比

GET / my_index / my_type / _search {
	"query": {
		"bool": {
			"should": [{
				"match": {
					"title": "brown"
				}
			}, {
				"match": {
					"title": "fox"
				}
			}, {
				"match": {
					"title": "dog"
				}
			}],
			"minimum_should_match": 2
		}
	}
}

以上查询的而结果仅包含以下文档:

title字段包含: "brown" AND "fox" 或者 "brown" AND "dog" 或者 "fox" AND "dog"

如果一份文档含有所有三个词条,那么它会被认为更相关。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值