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

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.lryc.cn/news/484191.html

相关文章:

  • 开发语言中,堆区和栈区的区别
  • 驾校增加无人机培训项目可行性技术分析
  • JavaWeb后端开发知识储备1
  • ISUP协议视频平台EasyCVR视频设备轨迹回放平台智慧农业视频远程监控管理方案
  • 大数据新视界 -- 大数据大厂之 Impala 存储格式转换:从原理到实践,开启大数据性能优化星际之旅(下)(20/30)
  • 百度搜索AI探索版多线程批量生成TXT原创文章软件-可生成3种类型文章
  • ubuntu20.04 解决Pytorch默认安装CPU版本的问题
  • 名词解释-2-形状算数实验、潜在空间、3D生成模型
  • Android 使用python统计getevent按键
  • NVIDIA jetson查看资源占用情况,打印/保存资源使用情况日志
  • ssm102“魅力”繁峙宣传网站的设计与实现+vue(论文+源码)_kaic
  • 逐行加载 HTML 内容并实时显示效果:使用 wxPython 的实现
  • UE4 Cook 从UAT传递参数给UE4Editor
  • 【学习日记】notebook添加JAVA支持
  • 以太坊系地址衍生算法分层确定性生成逻辑
  • 【Unity】ScriptableObject的应用:利用配方合成新物体
  • 31DNS设置
  • 使用Docker快速部署FastAPI Web应用
  • 全面掌握Spring Boot异常处理:策略与实践
  • 【LeetCode】【算法】11. 盛最多水的容器
  • ES6代理和反射新特性,详细讲解
  • vue计算属性 初步使用案例
  • 大模型时代,呼叫中心部门如何建设一套呼出机器人系统?
  • 使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面
  • 力扣 LeetCode 142. 环形链表II(Day2:链表)
  • 用MVVM设计模式提升WPF开发体验:分层架构与绑定实例解析
  • C++中的动态断言和静态断言
  • 运算放大器的学习(一)输入阻抗
  • Rust枚举之卧龙凤雏(Rust Option枚举、Rust Result枚举)(Rust Enum、Some(T)、Ok(T)、Err(E))链式操作
  • TCP/IP协议,TCP和UDP区别