Elasticsearch查询must 所有条件必须匹配
时间: 2023-12-23 14:05:33 浏览: 33
在Elasticsearch中,可以使用bool查询来实现must查询,该查询要求所有条件都必须匹配。例如:
```
{
"query": {
"bool": {
"must": [
{ "match": { "title": "elasticsearch" } },
{ "range": { "price": { "gte": 100, "lte": 200 } } }
]
}
}
}
```
上面的查询将返回所有title包含“elasticsearch”且price介于100和200之间的文档。如果任何一个条件不匹配,这个文档就不会被返回。
相关问题
ElasticSearch 批量条件查询
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" }
}
}
}
}
```
以上两种方式均可以实现批量条件查询,具体使用哪种方式取决于实际需求。
elasticsearch 按条件匹配更新
可以使用 Elasticsearch 的 Update By Query API 来实现按条件匹配更新。具体步骤如下:
1. 使用 Query DSL 构建查询条件。
2. 使用 Update API 构建更新操作。
3. 使用 Update By Query API 进行更新。
下面是一个示例代码:
```
POST /my_index/_update_by_query
{
"query": {
"bool": {
"must": [
{ "match": { "name": "John" } },
{ "range": { "age": { "gte": 18 } } }
]
}
},
"script": {
"source": "ctx._source.age += params.age",
"params": {
"age": 1
}
}
}
```
这个示例代码会将 `my_index` 索引中所有名字为 John,年龄大于等于 18 岁的文档的年龄加 1。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)