Es 多字段模糊查询 bool的方式

目录

要求:

or 的方式

multi_match:多字段模糊查询:

总结:


要求:

Es查询:

查询工单信息,其关联三个字段的内容; 即模糊查询三个字段: form_name, form_title ,  form_serial  的内容。三个字段中有查询出有符合内容的数据

 

输入IDC

 

or 的方式

and 查询 同时满足,用must

or  只要有一个或部分条件满足 should,符合要求

GET /basic_index*/_search
{
	"from": 0,
	"size": 20,
	"query": {
		"bool": {
			"should": [{
					"match": {
						"form_name": "IDC"
					}
				},
				{
					"match": {
						"form_title": "IDC"
					}
				},
				{
					"match": {
						"form_serial": "IDC"
					}
				}
			]
		}
	},
	"sort": [{
		"create_date": {
			"order": "desc"
		}
	}]

}

 这种方式适合动态拼接,但是拼接多了内容显得比较长

 

multi_match:多字段模糊查询:

multi_match可以指定多字段进行模糊查询。

GET /basic_index*/_search
{
	"size": 20,
	"from": 0,
	"query": {
		"bool": {
			"should": [{
				"multi_match": {
					"query": "IDC",
					"fields": ["form_name", "form_title", "form_serial"]
				}
			}]
		}
	},
	"sort": [{
		"create_date": {
			"order": "desc"
		}
	}]
}

 

总结:

   Es模糊查询,动态拼接的话,使用should比较方便,手动拼接在kibana的话,用multi_match会省事一些。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐