Elasticsearch 多条件查询指南:使用 bool 查询组合条件
ES(Elasticsearch)是一个开源的分布式搜索和分析引擎,可以通过多条件查询来检索文档。
在ES中,可以使用'bool'查询来实现多条件查询。'bool'查询可以包含多个子查询,每个子查询可以是一个'match'查询、'term'查询、'range'查询等等。
以下是一个示例的多条件查询:
GET /index/_search
{
"query": {
"bool": {
"must": [
{ "match": { "field1": "value1" } },
{ "term": { "field2": "value2" } }
],
"filter": [
{ "range": { "field3": { "gte": "value3" } } }
],
"should": [
{ "match": { "field4": "value4" } }
],
"must_not": [
{ "term": { "field5": "value5" } }
]
}
}
}
上述查询中,使用了'bool'查询来组合多个条件。其中:
- 'must'子句表示必须满足的条件,必须同时满足field1等于value1和field2等于value2。
- 'filter'子句表示过滤条件,只要满足field3大于等于value3的文档。
- 'should'子句表示可选条件,满足field4等于value4的文档会有更高的得分。
- 'must_not'子句表示排除条件,不满足field5等于value5的文档。
你可以根据具体的需求,组合不同的子查询来实现多条件查询。同时,你还可以使用各种其他查询类型和过滤器来进一步扩展查询功能。
原文地址: https://www.cveoy.top/t/topic/p96q 著作权归作者所有。请勿转载和采集!