ElasticSearch-query-filtered-bool组合过滤查询
2025-01-22 08:19:30 427 字
This post is also available in English and alternative languages.
ElasticSearch版本:6.5.0(点击跳转官方文档)
ElasticSearch 组合过滤查询
1. filter 过滤查询
elasticsearch 5.x中,filtered(filteredQuery)已经删除了,由 bool 查询代替。
2. bool 组合/过滤查询
bool子句允许你合并其他的合法子句,无论是 must,must_not还是should
bool可以用来合并多个过滤条件查询结果的布尔逻辑,它包含一下操作符:
操作符 | 含义 |
---|---|
must | 文档必须匹配,相当于 and |
must_not | 文档必须不匹配, 相当于 not |
should | 文档至少有一个条件匹配, 相当于 or |
在 books 索引,book类型下,查询两个子语句:
1.name字段必须包含’普通’
2.name字段必须不包含’教师’
1 | GET /books/book/_search |
在 books 索引,book类型下,查询三个子句:
- name字段必须包含’普通’
- name字段必须包含’高等’
- info字段必须不包含’原理’
1 | GET /books/book/_search |
在 books 索引,book类型下,符合 name包含’音乐史’、price为99,其中一个条件,就算命中。
1 | GET /books/book/_search |