elasticsearch字符串数组查询
时间: 2024-08-12 19:02:04 浏览: 111
Elasticsearch 中的字符串数组查询允许你在搜索文档时指定一个包含多个值的字段,并查找匹配其中任意一项的记录。这种查询通常用于模糊匹配或者需要从多个选项中进行选择的情况。有两种常见的方法来进行字符串数组查询:
1. **`terms` 查询**:这是最直接的方式,它会返回那些字段值中包含列表中任何一个元素的文档。例如,假设你要搜索电影评论中的演员名字,可以这样做:
```json
GET /your_index/_search
{
"query": {
"terms": { "actors": ["Tom Hanks", "Meryl Streep"] }
}
}
```
2. **`match` 或 `match_phrase` 查询**:如果需要更复杂的模式匹配,如部分匹配、短语匹配等,可以使用 `match` 或 `match_phrase` 查询,配合通配符 `"*"` 或者范围查询 `[ ]` 来实现模糊搜索。比如搜索包含“动作”或“喜剧”的电影类型:
```json
GET /your_index/_search
{
"query": {
"bool": {
"should": [
{"match": { "genres": "*动作*" }},
{"match": { "genres": "*喜剧*" }}
]
}
}
}
```
阅读全文