elasticsearch head复合查询示例
时间: 2023-06-21 12:25:00 浏览: 108
以下是一个 Elasticsearch Head 复合查询的示例:
```json
GET /my_index/_search
{
"query": {
"bool": {
"must": [
{ "match": { "title": "elasticsearch" } },
{ "match": { "content": "head" } }
],
"filter": [
{ "term": { "category": "tutorial" } },
{ "range": { "publish_date": { "gte": "2020-01-01" } } }
],
"should": [
{ "match": { "author": "John Doe" } },
{ "match": { "author": "Jane Smith" } }
],
"must_not": { "match": { "description": "deprecated" } }
}
}
}
```
这个查询使用了一个布尔查询(bool query),包含了四个子句:
- `must` 子句:必须匹配的查询条件,这里使用了两个 `match` 查询,分别匹配了 `title` 和 `content` 字段。
- `filter` 子句:必须满足的过滤条件,这里使用了两个过滤器,分别限制了 `category` 字段的值为 `tutorial`,以及 `publish_date` 字段的值必须大于等于 `2020-01-01`。
- `should` 子句:可选匹配的查询条件,这里使用了两个 `match` 查询,分别匹配了 `author` 字段为 `John Doe` 或 `Jane Smith`。
- `must_not` 子句:必须不匹配的查询条件,这里使用了一个 `match` 查询,排除了 `description` 字段包含 `deprecated` 的文档。
这个查询是一个比较复杂的示例,但它展示了如何使用 Elasticsearch Head 进行复合查询。
阅读全文