【Elasticsearch系列廿一】ES7 SQL 新特性

news2025/1/11 0:23:07

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

      • 1.概述
      • 2.快速入门
      • 3.启动方式
      • 4.sql 翻译
      • 5.与其他 DSL 结合

1.概述

Elasticsearch 7.x 版本在 SQL 支持方面进行了显著增强,使得用户能够更加方便地使用 SQL 语句来查询和操作 Elasticsearch 中的数据。以下是一些关键的新特性:

  1. 更丰富的 SQL 支持:Elasticsearch 7.x 版本扩展了对标准 SQL 查询语句的支持,包括对 JOIN 操作的支持(尽管有限制,仅支持特定类型的 JOIN)。此外,可能还增强了对窗口函数(Window Functions)或分组后的分析函数(Analytic Functions)的支持。

  2. 性能优化:SQL 查询引擎的性能得到了提升,查询延迟降低,大规模数据集下的查询效率提高。

  3. 改进的兼容性:改进了对不同 SQL 方言的理解和转换,使得从其他关系型数据库迁移到 Elasticsearch 更加平滑。

  4. API 更新:Elasticsearch 提供了一个 SQL REST API 端点,允许用户发送 SQL 查询并获取 JSON 格式的结果。Java API 也得到了更新,可以通过 RestHighLevelClient 或其他客户端类来执行 SQL 请求。

  5. 响应数据格式介绍:可以通过 URL 参数或 HTTP 头信息设置响应数据的格式,如 CSV、JSON、TSV、TXT、YAML、CBOR 和 SMILE 等。

  6. 与其他 DSL 结合:SQL 语句可以与其他查询语句结合使用,例如查询特定价格范围内的数据。

  7. Java 代码实现 SQL 功能:如果需要在代码中实现 SQL 功能,可能需要 Elasticsearch 的白金版许可。可以通过 JDBC 连接 Elasticsearch 并执行 SQL 语句。

  8. SQL 翻译:SQL 语句实际上是被转换成 Elasticsearch 的查询语句来执行的,可以使用 translate 端点来查看底层的查询语句。

  9. 跨集群搜索:引入了 ccs_minimize_roundtrips 模式,减少了网络开销。

  10. 新的集群协调实现:改进了集群协调子系统,提高了选主速度。

  11. 支持较小的堆内存:添加了新的熔断器,更好地追踪内存使用量,避免节点异常。

  12. 跨集群复制(CCR):支持跨机房、跨地区情况下的集群数据同步。

  13. Rank features:新增了 rank_featurerank_features 数据类型,用于对排序打分进行干预。

  14. Script score query:引入了 script_score 查询的别名 function_score2,提供了更好的扩展性。

2.快速入门

POST /_sql?format=txt
{
    "query": "SELECT * FROM tvs"
}

3.启动方式

  • http 请求
  • 客户端:elasticsearch-sql-cli.bat
  • 代码

4.sql 翻译

POST /_sql/translate
{
    "query": "SELECT * FROM tvs "
}

返回:

{
  "size": 1000,
  "_source": false,
  "stored_fields": "_none_",
  "docvalue_fields": [
    {
      "field": "brand"
    },
    {
      "field": "color"
    },
    {
      "field": "price"
    },
    {
      "field": "sold_date",
      "format": "epoch_millis"
    }
  ],
  "sort": [
    {
      "_doc": {
        "order": "asc"
      }
    }
  ]
}

5.与其他 DSL 结合

POST /_sql?format=txt
{
    "query": "SELECT * FROM tvs",
    "filter": {
        "range": {
            "price": {
                "gte" : 1200,
                "lte" : 2000
            }
        }
    }
}

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2157893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式设备网口down后再up时不能link?

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

[ComfyUI]又降了,只需10G显存玩转CogVideoX5B图生视频,效果太惊艳!

在数字艺术和创意领域,[ComfyUI]一直致力于为用户提供最优质的技术和工具。今天,我们激动地宣布,[ComfyUI]再次取得重大突破——只需10G显存,用户就能轻松玩转CogVideoX5B图生视频,创造出令人惊艳的效果! …

【人工智能】在大型活动中的应用案例

人工智能在娱乐大型活动中的应用 ## 作者主页: 知孤云出岫 目录 **人工智能在娱乐大型活动中的应用****1. 引言****2. 智能票务与入场管理****2.1 动态定价与票务预测****2.2 生物识别技术快速入场****2.3 区块链技术防伪票务管理** **3. 智能观众互动与个性化体验****3.1 个性…

Java语言程序设计基础篇_编程练习题**18.35(H 树分形)

目录 题目:**18.35(H 树分形) 代码示例 代码解释 输出结果 题目:**18.35(H 树分形) 一个H 树分形(本章开始部分介绍过,如图18-1)如下定义: 1)从字母H开始。H的三条线长度一样,如图 18-1a 所示。 2)字母H(以它的 sans-serif …

归并算法实现

1.归并算法图解 2.归并算法代码 package com.suanfa.sort;import java.util.Arrays;/*** 归并算法*/ public class MergeSort {/*** 拆的时间复杂度logn * 并的时间复杂度n nlogn** param arr* param left* param right*/public static void sortMerge(int[] arr, int left, …

第十一章 从0-1搭建一个简单的JavaWeb系统(三)

目录 一、工程代码结构 二、代码实现 三、运行效果 四、未完待续 本章节的每一段代码,建议全部自己敲一遍,加深印象,切勿直接复制黏贴。 一、工程代码结构 本章节实现注销(退出)功能,以下图片中标红的…

19个邮件群发小技巧,最大水平充分利用邮件营销

邮件群发在现代通信中占据着非常重要的位置。无论是在商业环境还是个人生活中,它都有着广泛的应用。无论您是公司的市场推广专家,还是社交团体的筹办者,掌握有效的邮件群发技巧会帮助您更好地传递信息、节约时间和提升工作效率。 确定目标受众…

【Ubuntu】Ubuntu安装编译C/C++环境简易版教程

环境 操作系统:ubuntu-22.04.4-desktop-amd64.iso 安装 第一步:更新软件包列表,检查可用的软件包更新 sudo apt update在这一步,我们可以确保系统中的软件包列表是最新的,以便后续的软件包管理操作。 第二步:安装…

craco-less使用问题

craco-less使用问题 问题背景 前端是用React搭建,使用craco配置,相关库或插件版本如下 "craco/craco": "^7.1.0","react-scripts": "^5.0.1","craco-less": "^3.0.1"在生产环境&#xff…

JAVA开源项目 甘肃非物质文化网站 计算机毕业设计

本文项目编号 T 043 ,文末自助获取源码 \color{red}{T043,文末自助获取源码} T043,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

【无人机设计与控制】基于蜣螂优化算法求解多无人机集群路径规划问题

摘要 本文基于蜣螂优化算法(Dung Beetle Optimization, DBO)研究了多无人机路径规划问题。目标是优化多无人机的飞行轨迹,在避免障碍物的同时,尽量减少能量消耗并保持集群内的通信。为提高搜索效率和准确性,对DBO进行…

AJAX 入门 day3 XMLHttpRequest、Promise对象、自己封装简单版的axios

目录 1.XMLHttpRequest 1.1 XMLHttpRequest认识 1.2 用ajax发送请求 1.3 案例 1.4 XMLHttpRequest - 查询参数 1.5 XMLHttpRequest - 数据提交 2.Promise 2.1 Promise认识 2.2 Promise - 三种状态 2.3 案例 3.封装简易版 axios 3.1 封装_简易axios_获取省份列表 3…

Spring Boot 中实现任务后台处理的几种常见方式

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 前言 在现代应用程序中,后台处理对于处理发送电子邮件、处理文件、生成报告等任务至关重要。 Spring Boot 提供了多种机制来高效地实现后台任务。本文探讨了在 Spring Boot 中处理后台处理的各…

STM32调试TIC12400笔记

工作中需要用到,但是有关这个芯片的参考资料好少,自己写一下调试过程,持续更新中,还没调完。 用的是正点原子的mini板,芯片是stm32f103RCT,需要知道spi的相关知识,先配置spi,用cube…

Ubuntu初期配置常见问题汇总

ubuntu配置vim 代码配色 终端配置 ubuntu配置vim 代码配色 终端配置_ubuntu的vim配置-CSDN博客https://blog.csdn.net/GM2418/article/details/134195020小缺点是无法自动补齐 ubuntu中vim实现代码补全等功能_ubuntu vim 自动补全-CSDN博客https://blog.csdn.net/weixin_4580…

图纸加密软件有哪些?2024好用不踩雷的10款图纸加密软件推荐!

在当今数字化时代,图纸作为工程设计、建筑规划等领域的重要文件,其安全性至关重要。为了保护这些敏感信息不被泄露,图纸加密软件应运而生。本文将为您推荐2024年10款好用且不踩雷的图纸加密软件,帮助您选择最适合的工具来保护您的…

【machine learning-十-grading descent梯度下降实现】

grading descent 梯度下降参数更新方法 --导数和学习率 从导数项直观理解梯度下降 grading descent 算法就是更新参数,今天来学习下如何更新w和b 梯度下降 还是以线性回归的均方差损失函数如下为例: 损失函数的可视化图如下 : 横轴和纵轴分…

平价头戴式蓝牙耳机哪个牌子好?四大平价爆款头戴式耳机品牌推荐

在追求高品质音乐生活的同时,我们往往被高昂的价格所困扰,然而随着科技的进步和市场竞争的加剧,越来越多的平价头戴式蓝牙耳机品牌开始崭露头角,它们以出色的音质、舒适的佩戴体验和亲民的价格赢得了广大消费者的喜爱,…

数据结构之线性表(python)

华子目录 线性表的定义前驱与后继 1.顺序表(顺序存储结构)python列表与数组的区别列表数组 1.1插入数据实例 1.2删除元素实例 1.3查找元素1.4修改元素1.5综合示例 2.单链表2.1单链表的初始化2.2插入元素示例注意 2.3删除元素示例 2.4修改元素2.5查找元素…

【网络】TCP协议的简单使用

目录 echo_service server 单进程单线程 多进程 多线程 线程池 client echo_service_code echo_service 还是跟之前UDP一样,我们先通过实际的代码来实现一些小功能,简单的来使用TCP协议进行简单的通信,话不多说,我们先实现…