Elasticsearch 根据条件搜索
时间: 2023-12-20 10:59:29 浏览: 32
Elasticsearch 是一个基于 Lucene 的搜索引擎,可以方便地根据条件搜索。以下是一些常见的搜索条件:
1. 匹配查询:匹配查询是最常用的查询方式之一,它可以根据指定字段匹配特定的值。例如,以下查询可以查找名字为“John”的所有用户:
```
GET /users/_search
{
"query": {
"match": {
"name": "John"
}
}
}
```
2. 多字段查询:有时候需要同时在多个字段中搜索,可以使用多字段查询。例如,以下查询可以查找名字或姓氏中包含“John”的所有用户:
```
GET /users/_search
{
"query": {
"multi_match": {
"query": "John",
"fields": ["name", "last_name"]
}
}
}
```
3. 范围查询:范围查询可以根据指定字段的范围搜索文档。例如,以下查询可以查找年龄在 18 到 30 岁之间的所有用户:
```
GET /users/_search
{
"query": {
"range": {
"age": {
"gte": 18,
"lte": 30
}
}
}
}
```
4. 布尔查询:布尔查询可以组合多个查询条件。例如,以下查询可以查找名字为“John”且年龄在 18 到 30 岁之间的所有用户:
```
GET /users/_search
{
"query": {
"bool": {
"must": [
{ "match": { "name": "John" } },
{ "range": { "age": { "gte": 18, "lte": 30 } } }
]
}
}
}
```
这只是 Elasticsearch 搜索的一小部分功能,还有很多其他的查询类型和参数可以使用。