Elasticsearch 常用 DSL 语句原创
# 1. 基本查询(Match Query)
{
"query": {
"match": {
"field": "value"
}
}
}
1
2
3
4
5
6
7
2
3
4
5
6
7
解释:匹配某个字段中包含特定值的文档。例如,查询 "title" 字段中包含 "Elasticsearch" 的文档。
# 2. 多字段匹配查询(Multi-Match Query)
{
"query": {
"multi_match": {
"query": "value",
"fields": ["field1", "field2"]
}
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
解释:在多个字段中查找包含特定值的文档。例如,查询 "title" 和 "description" 字段中包含 "Elasticsearch" 的文档。
# 3. 词条查询(Term Query)
{
"query": {
"term": {
"field": "value"
}
}
}
1
2
3
4
5
6
7
2
3
4
5
6
7
解释:精确匹配字段中的值。例如,查询 "status" 字段中值为 "active" 的文档。
# 4. 布尔查询(Bool Query)
{
"query": {
"bool": {
"must": [
{ "match": { "field1": "value1" } },
{ "match": { "field2": "value2" } }
],
"filter": [
{ "term": { "status": "active" } }
],
"must_not": [
{ "range": { "age": { "lt": 30 } } }
],
"should": [
{ "term": { "tag": "important" } }
]
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
解释:结合多个查询条件,"must" 代表必须匹配的条件,"filter" 代表过滤条件,"must_not" 代表不匹配的条件,"should" 代表可选的条件。
# 5. 范围查询(Range Query)
{
"query": {
"range": {
"field": {
"gte": "value1",
"lte": "value2"
}
}
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
解释:查询字段值在某个范围内的文档。例如,查询 "price" 字段在 10 到 20 之间的文档。
# 6. 前缀查询(Prefix Query)
{
"query": {
"prefix": {
"field": "prefix_value"
}
}
}
1
2
3
4
5
6
7
2
3
4
5
6
7
解释:查询以某个前缀开头的文档。例如,查询 "username" 字段以 "john" 开头的文档。
# 7. 短语匹配查询(Phrase Query)
{
"query": {
"match_phrase": {
"field": "phrase_value"
}
}
}
1
2
3
4
5
6
7
2
3
4
5
6
7
解释:查询包含特定短语的文档。例如,查询 "description" 字段中包含短语 "quick brown fox" 的文档。
# 8. 聚合查询(Aggregation)
{
"aggs": {
"agg_name": {
"terms": {
"field": "field_name"
}
}
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
解释:用于对数据进行分组和统计。例如,对 "category" 字段进行分组,并统计每个分类的文档数量。
# 9. 嵌套查询(Nested Query)
{
"query": {
"nested": {
"path": "path_to_nested_field",
"query": {
"match": {
"nested_field": "value"
}
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
解释:用于查询嵌套对象中的字段。例如,查询 "comments" 字段中的 "text" 字段包含 "Elasticsearch" 的文档。
# 10. 高亮查询(Highlighting)
{
"query": {
"match": {
"field": "value"
}
},
"highlight": {
"fields": {
"field": {}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
解释:查询并高亮显示匹配的部分。例如,查询 "content" 字段中包含 "Elasticsearch" 的文档,并高亮显示匹配的内容。
上次更新: 8/28/2024
← ES加速恢复 kafka 日常操作→
- 01
- GPT分区使用 parted 扩展分区的操作流程 原创08-28
- 02
- VictoriaMetrics 集群版安装与配置 原创08-24
- 03
- Kubernetes (k8s) 相关名词详解 原创06-27