# DSL 查询简介

URL: https://caijiao.org/elasticsearch/02.basic/09.query-dsl
Source: docs/elasticsearch/02.basic/09.query-dsl.md
Description: 本章介绍 Elasticsearch 查询 DSL 的基本概念和结构，帮助理解如何通过 DSL 构建复杂的搜索和过滤条件。

Elasticsearch 使用强大的查询领域特定语言（DSL，Domain Specific Language）来执行复杂的搜索操作。DSL 以 JSON 格式表达查询逻辑，支持全文检索、过滤、聚合等多种功能。

## 1. 什么是 DSL 查询

DSL 查询是一种基于 JSON 的声明式语言，用于描述搜索请求中的各种查询条件和参数。

## 2. DSL 的基本结构

一个典型的 DSL 查询请求包含 `query` 字段：

```json
GET /my-index/_search
{
  "query": {
    "match": {
      "field": "keyword"
    }
  }
}
````

## 3. 常见查询类型

* `match`：全文匹配查询，分词后搜索
* `term`：精确匹配查询，不分词
* `bool`：组合查询，支持 must、should、must\_not 条件
* `range`：范围查询，支持数值、日期区间
* `exists`：判断字段是否存在

## 4. 查询与过滤

* 查询（Query）影响相关度评分
* 过滤（Filter）用于精确筛选，不影响评分，性能更优

---

掌握 DSL 查询基础，能帮助你灵活构建复杂搜索条件，实现精准高效的数据检索。
