Elasticsearch-DSL查询

12/19/2023 Elasticsearch

查询、过滤、聚合、排序

# 简单查询

# Match Query

Match Query用于全文搜索,可以匹配包含指定词汇的字段

{
  "query": {
    "match": {
      "field_name": "search_term"
    }
  }
}
1
2
3
4
5
6
7

# Term Query

Term Query用于精确匹配一个或多个不分析(not analyzed)的值。

{
  "query": {
    "term": {
      "field_name": "exact_value"
    }
  }
}
1
2
3
4
5
6
7

# Prefix Query

Prefix Query用于查找字段值以特定前缀开始的文档。

{
  "query": {
    "prefix": {
      "field_name": "prefix_value"
    }
  }
}
1
2
3
4
5
6
7

# Wildcard Query

Wildcard Query用于使用通配符(*和?)进行字段值的匹配。

{
  "query": {
    "wildcard": {
      "field_name": "prefix*"
    }
  }
}
1
2
3
4
5
6
7

# Range Query

Range Query用于查找字段值在特定范围内的文档。

{
  "query": {
    "range": {
      "field_name": {
        "gte": "lower_bound",
        "lte": "upper_bound"
      }
    }
  }
}
1
2
3
4
5
6
7
8
9
10

# Exists Query

Exists Query用于查找具有指定字段的文档。

{
  "query": {
    "exists": {
      "field": "field_name"
    }
  }
}
1
2
3
4
5
6
7

# Missing Query

Missing Query用于查找未包含指定字段的文档。

{
  "query": {
    "missing": {
      "field": "field_name"
    }
  }
}
1
2
3
4
5
6
7

# 复合查询