Elasticsearch的查询语法——DSL 查询

控制台打印日志:

index-name: local_es_staff_info202404021352

DSL:{"size":10000,"query":{"bool":{"must":[{"terms":{"emplId":["001756","000043","004193"],"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"track_total_hits":2147483647}

esStaffMapper 是与 Elasticsearch 数据库交互的 Mapper。

Elasticsearch 使用自己的查询语言 DSL(Domain Specific Language),这是一种 JSON 格式的查询语言。DSL 查询比传统 SQL 更符合 Elasticsearch 的分布式、全文搜索引擎的特性。

例如,在日志中:

json 复制代码
 {
      "size": 10000,
      "query": {
        "bool": {
          "must": [
            {
              "terms": {
                "emplId": ["001756", "000043", "004193"],
                "boost": 1.0
              }
            }
          ],
          "adjust_pure_negative": true,
          "boost": 1.0
        }
      },
      "track_total_hits": 2147483647
    }
复制代码
这段 JSON 表示一个 Elasticsearch 查询,其中:
    terms 查询用于匹配 emplId 字段的特定值。
    boost 用于提升查询的相关性。
    track_total_hits 用于控制结果的最大计数。

为什么打印的是 DSL,而不是 SQL?
    MyBatis-Plus 不是直接用于 Elasticsearch。它主要用于关系型数据库(如 MySQL、PostgreSQL),而在使用的是与 Elasticsearch 交互的框架或库(如 Spring Data Elasticsearch 或其他自定义的 Elasticsearch Mapper)。因此,查询语句是基于 Elasticsearch 的查询 DSL,而不是 SQL。

如何调试或查看 Elasticsearch 的查询

如果想调试或查看 Elasticsearch 的查询执行过程,可以使用以下方式:

复制代码
查看日志:
    Elasticsearch 提供了丰富的日志输出,可以在 Elasticsearch 的配置中设置日志级别为 DEBUG 或 TRACE,从而查看查询的执行细节。

查看请求:
    如果使用的是 Spring Data Elasticsearch,可以启用 org.springframework.data.elasticsearch.core 的日志来查看查询请求。
    还可以在代码中手动查看或打印出构建的 Elasticsearch 请求体。

查看 Elasticsearch 请求:
    如果有访问 Elasticsearch 的 REST API,可以直接将 DSL 查询通过 HTTP 请求发送到 Elasticsearch 集群,然后查看返回的响应结果。比如通过 curl 或 Postman 发起查询请求。
相关推荐
Elasticsearch6 小时前
如何使用 Agent Builder 排查 Kubernetes Pod 重启和 OOMKilled 事件
elasticsearch
Elasticsearch1 天前
通用表达式语言 ( CEL ): CEL 输入如何改进 Elastic Agent 集成中的数据收集
elasticsearch
武子康1 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康2 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库3 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟3 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长3 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计