当前位置: 首页 > article >正文

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 的分布式、全文搜索引擎的特性。

例如,在日志中:

 {
      "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 发起查询请求。

http://www.kler.cn/a/400407.html

相关文章:

  • 网页作业9
  • esp32c3开发板通过micropython的mqtt库连MQTT物联网消息服务器
  • @JsonSerialize修复前端精度问题
  • 【Nginx从入门到精通】03 、安装部署-让虚拟机可以联网
  • executed_gtid_set 与 purged_gtid_set
  • Vue.插槽使用指南,实现高复用组件
  • uniapp开发微信小程序笔记2-开发静态页面(新建页面、内置组件、设置编译模式、样式、SCSS的使用)
  • `.mat`文件是一种由MATLAB(矩阵实验室Matrix Laboratory)创建的数据文件格式,也能用python打开
  • 【C++】—— map 与 set 深入浅出:设计原理与应用对比
  • 对PolyMarket的突袭
  • 使用 OpenAI 进行数据探索性分析(EDA)
  • 鸿蒙next判断程序安装后第一次启动,以及更新(覆盖安装)后第一次启动
  • Git 修改用户名(user.name)和用户邮件地址(user.email)的方法和作用
  • 视频对接rtsp协议学习
  • CSS盒子的定位>(上篇)#定位属性#相对定位-附练习
  • 线代笔记期末复习
  • 递归(3)----力扣40组合数2,力扣473火柴拼正方形
  • 最长连续序列
  • docker使用,docker图形化界面+docker详细命令
  • VBA学习笔记:点击单元格显示指定的列