ElasticSearch 批量条件查询
时间: 2023-12-03 08:44:46 浏览: 77
ElasticSearch 支持批量条件查询,可以使用 Bool Query 和 Filtered Query 来实现。
Bool Query 可以实现多个条件的组合查询,包括 must、should、must_not、filter 等子句。其中,must子句表示所有条件必须匹配,should子句表示至少有一个条件匹配,must_not子句表示所有条件都不能匹配,filter子句表示所有条件必须匹配,但是不计算得分。
示例代码:
```
POST /my_index/_search
{
"query": {
"bool": {
"must": [
{ "match": { "title": "Search" }},
{ "match": { "content": "Elasticsearch" }}
],
"filter": [
{ "term": { "status": "published" }},
{ "range": { "publish_date": { "gte": "2015-01-01" }}}
]
}
}
}
```
Filtered Query 可以在查询结果中过滤掉不符合条件的文档,减少计算量,提高查询效率。Filtered Query 可以将 Query 和 Filter 结合起来使用。
示例代码:
```
POST /my_index/_search
{
"query": {
"filtered": {
"query": {
"match": { "title": "Search" }
},
"filter": {
"term": { "status": "published" }
}
}
}
}
```
以上两种方式均可以实现批量条件查询,具体使用哪种方式取决于实际需求。
阅读全文