Elasticsearch:15 年来致力于索引一切,找到重要内容

作者:来自 Elastic Shay Banon 及 Philipp Krenn

Elasticsearch 刚刚 15 岁了!回顾过去 15 年的索引和搜索,并展望未来 15 年的相关内容。

Elasticsearch 刚刚成立 15 周年。一切始于 2010 年 2 月的一篇公告博客文章(带有标志性的 “You Know, for Search - 你知道,用于搜索” 标语)、第一次公开提交和第一个版本,当时的版本号是 0.4.0。

让我们回顾一下过去 15 年的索引和搜索,并展望未来 15 年的发展。

更多阅读,请参阅:

  • Elasticsearch 简介

  • Elasticsearch 的前世今生

GET _cat/stats

自推出以来,Elasticsearch 平均每秒被下载 3 次,累计下载量超过 14.5 亿次。

GitHub 统计数据同样令人印象深刻:来自 2,400 名独特作者的超过 83,000 次提交、38,000 个问题、25,000 个分支和 71,500 个星标。并且没有放缓的迹象。

所有这些都是建立在无数 Apache Lucene 贡献之上的。今年是 Lucene 诞生 25 周年,我们也将深入讨论这些问题。与此同时,你可以查看 20 周年纪念页面,庆祝 Apache 的顶级项目之一。

Search 故事

亮点太多,无法全部列出,但以下是过去 15 年中推出的 15 个版本和功能,这些版本和功能使 Elasticsearch 达到了今天的水平:

  • Elasticsearch 公司(2012 年):该开源项目正式成为一家开源公司,为其成长奠定了基础。
  • ELK Stack(2013 年):ElasticsearchLogstashKibana 联手形成了 ELK Stack,现在它已成为日志记录和分析的代名词。
  • 版本 1(2014):第一个稳定版本引入了快照/恢复、聚合、断路器和 _cat API 等主要功能。
  • Shield 和 Found(2015):Shield 以(付费)插件的形式为 Elasticsearch 集群带来了安全性。而对 found.no 的收购则将 Elasticsearch 带入了云端,发展成为现在的 Elastic Cloud。有趣的是,没有人能找到 “Found”—— SEO对于某些关键词来说可能很难。
  • 版本 2(2015):引入了 pipelined 聚合、使用 Java 安全管理器增强安全性以及提高性能和弹性。
  • 版本 5 和 Elastic Stack(2016):跳过两个主要版本,统一 ELK Stack 的版本号,并在添加 Beats 后将其转变为 Elastic Stack。此版本还引入了摄取节点和painless 脚本语言。
  • 版本 6(2017):带来零停机升级、索引排序和类型删除以简化数据建模。
  • 版本 7(2019):将集群协调更改为更具可扩展性和弹性的 Zen2、单分片默认设置、内置 JDK 和自适应副本选择。
  • 免费安全(2019):随着 6.8 和 7.1 版本的发布,核心安全变得免费,以帮助每个人保护他们的集群。
  • ILM、数据层和可搜索快照(2020):通过索引生命周期管理 (ILM)、分层存储和可搜索快照使时间序列数据更易于管理且更具成本效益。
  • 版本 8(2022):引入了使用 HNSW 的原生密集想量搜索,并默认启用安全性。
  • ELSER(2023):推出了 Elastic Learned Sparse EncoderR 模型,带来稀疏向量搜索以实现更好的语义相关性。
  • 再次开源(2024):添加 AGPL 作为许可选项以恢复开源 Elasticsearch。
  • Start Local(2024):运行 Elasticsearch 和 Kibana 变得比以往更容易:curl -fsSL https://elastic.co/start-local sh
  • LogsDB(2024):一种新的专门索引模式,可将日志存储减少高达 65%。

搜索的未来一片光明

由于人工智能能力的崛起,搜索比以往更加相关且有趣。那么 Elasticsearch 的下一步是什么?由于内容太多,无法一一列举,因此我们将重点讨论三个领域及其所要解决的挑战。

Serverless

没有分片、节点或版本。 Elasticsearch Serverless(在 AWS 上已正式发布,在 Azure 上刚刚进入技术预览版)可以解决你过去可能遇到的运营问题:

  • 15 年过去了,仍然有人无缘无故地将 number_of_shards 设置为 100。
  • 15 年了,我们仍在争论 refresh_interval:1 秒还是 30 秒,就像这是一个生死攸关的决定一样。
  • 15 年的大版本迭代、一次次的惊心动魄,以及升级到最新版本的刺激体验。

你今天就可以试用 Elasticsearch Serverless。

ES|QL

“为 Elasticsearch 15 周年干杯 — — Query DSL 仍然是你日常生活中最复杂的部分。” 但事实并非如此。新的 Elasticsearch 管道查询语言 (ES|QL) 带来了更简单的语法,并对性能有更高要求的新计算引擎进行了重大投资。虽然我们正在构建更多功能,但你今天就可以使用 ES|QL。不用担心; 查询 DSL 将会理解。

人工智能无处不在

  • 经过 15 年的查询调整,我们仍然只是使用 boost: 10 来解决问题。
  • 15 年来,我们一直致力于让你的日志可搜索,但你仍然不知道生产过程中发生的情况。
  • 仍然最擅长找到那一条日志行...如果你还记得如何对其进行索引的话。

人工智能正在重新定义一切皆有可能 —— 从利用人工智能助手将原始日志转化为可操作的见解以实现可观察性和安全性,到利用语义理解和智能重新排名进行更相关的搜索。

这仅仅是一个开始。更多人工智能功能即将问世 —— 带来更智能的搜索、增强的可观察性和更强的安全性。 Elasticsearch 的未来不仅仅是查找数据;而是要理解它。敬请关注——最好的尚未到来。

感谢大家

感谢过去 15 年来的所有贡献者、用户和客户,是他们让 Elasticsearch 有了今天的地位。如果没有你,我们就无法做到这一点,我们非常感谢你向 Elasticsearch 发送的每一个查询。

展望未来 15 年。尽情享受吧!

Elasticsearch 包含许多新功能,可帮助你为你的用例构建最佳的搜索解决方案。深入了解我们的示例笔记本以了解更多信息,开始免费云试用,或立即在本地机器上试用 Elastic。

更多阅读:与我们一起庆祝 Elasticsearch 15 周年

原文:Elasticsearch: 15 years of indexing it all, finding what matters - Elasticsearch Labs

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EF Core中实现值对象

目录 值对象优点 值对象的需求 值类型的实现 值类型GEO的实现 值类型MultilingualString的实现 案例:构建表达式树,简化值对象的比较 值对象优点 把有紧密关系的属性打包为一个类型把领域知识放到类的定义中 class shangjia {long id;string nam…

ETHEREAL:使用压缩Tsetlin机器实现能效高吞吐量推理

论文标题 英文标题:ETHEREAL: Energy-efficient and High-throughput Inference using Compressed Tsetlin Machine 中文标题:ETHEREAL:使用压缩Tsetlin机器实现能效高吞吐量推理 作者信息 Shengyu Duan, Newcastle University, Newcastle…

PyCharm 批量替换

选择替换的内容 1. 打开全局替换窗口 有两种方式可以打开全局替换窗口: 快捷键方式: 在 Windows 或 Linux 系统下,按下 Ctrl Shift R。在 Mac 系统下,按下 Command Shift R。菜单操作方式:点击菜单栏中的 Edit&…

mars3d接入到uniapp的时候ios上所有地图的瓦片都无法加载解决方案

用的是【Mars3d】官网的uniapp的仓库,安卓没有问题,但是ios的不行 相关链接 mars3d-uni-app: uni-app技术栈下的Mars3D项目模板 解决方案:感觉所有图片请求全被拦截了 uniapp的ios内核不允许跨域,需要先把瓦片下载后转base64&…

SpringBoot速成(十)更新用户信息P11-P12

1.代码展示: 1.RequestBody 是 Spring 框架中用于处理 HTTP 请求体的注解,通常用于控制器(Controller)层的方法参数中。当客户端发送一个包含 JSON 或 XML 数据的 HTTP 请求时,可以使用 RequestBody 将这些数据绑定到一…

3.3.3 VO-O语法- 语法算子(二)

循环遍历 由于VO语言是面向数据集的,其所有隐含的语义中都已经带有了遍历并计算的数据逻辑。因此,VO语言只提供了一种支持循环语法的算子--Loop算子。 Loop算子 Loop算子是一个容器算子,其可以实现对其内部子流程的循环迭代运行。但Loop算…

java后端开发day13--面向对象综合练习

(以下内容全部来自上述课程) 注意:先有javabean,才能创建对象。 1.文字版格斗游戏 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候&#…

RocketMQ和Kafka如何实现顺序写入和顺序消费?

0 前言 先说明kafka,顺序写入和消费是Kafka的重要特性,但需要正确的配置和使用方式才能保证。本文需要解释清楚Kafka如何通过分区来实现顺序性,以及生产者和消费者应该如何配合。   首先,顺序写入。Kafka的消息是按分区追加写入…

DeepSeek系统崩溃 | 极验服务如何为爆火应用筑起安全防线?

引言 极验服务让您的产品站在风口之时,不必担心爆红是灾难的开始,而是期待其成为驱动持续创新的全新起点。 01现象级狂欢背后,你的业务安全防线抗得住吗? “近期DeepSeek线上服务受到大规模恶意攻击,注册可能繁忙&am…

【故障处理】- RMAN-06593: platform name ‘Linux x86 64-bitElapsed: 00:00:00.00‘

【故障处理】- RMAN-06593: platform name Linux x86 64-bitElapsed: 00:00:00.00 一、概述二、报错原因三、解决方法 一、概述 使用xtts迁移,在目标端进行恢复时,遇到RMAN-06593: platform name Linux x86 64-bitElapsed: 00:00:00.00’报错。 二、报错…

日志结构化处理:PO对象toString日志转JSON工具

日志结构化处理:PO对象toString日志转JSON工具 1. 解决的问题2. 下载地址 在Java项目中,PO(Plain Old Java Object)对象遍布各个角落,且常常伴随着大量的日志记录需求。传统的做法是通过toString方法直接打印这些对象&…

【云安全】云原生- K8S API Server 未授权访问

API Server 是 Kubernetes 集群的核心管理接口,所有资源请求和操作都通过 kube-apiserver 提供的 API 进行处理。默认情况下,API Server 会监听两个端口:8080 和 6443。如果配置不当,可能会导致未授权访问的安全风险。 8080 端口…

Ansible批量配置服务器免密登录步骤详解

一、准备工作 192.168.85.138 安装ansible,计划配置到139的免密 192.168.85.139 待配置免密 1. 生成SSH密钥对 在Ansible控制节点生成密钥对,用于后续免密认证: ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa 全部回车默认,无…

游戏引擎学习第99天

仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板:制作一些光场(Light Field) 当前的目标是为游戏添加光照系统,并已完成了法线映射(normal maps)的管道,但还没有创建可以供这些正常映射采样的光场。为了继续推进&…

纪念日倒数日项目的实现-【纪念时刻-时光集】

纪念日/倒数日项目的实现## 一个练手的小项目,uniappnodemysql七牛云。 在如今快节奏的生活里,大家都忙忙碌碌,那些具有特殊意义的日子一不小心就容易被遗忘。今天,想给各位分享一个“纪念日”项目。 【纪念时刻-时光集】 一…

yanshee机器人初次使用说明(备注)-PyCharm

准备 需要: 1,(优必选)yanshee机器人Yanshee 开发者说明 2,手机-联网简单操控 / HDMI线与显示器和键鼠标-图形化开发环境 / 笔记本(VNC-内置图形化开发环境/PyCharm等平台)。 3,P…

webshell通信流量分析

环境安装 Apatche2 php sudo apt install apache2 -y sudo apt install php libapache2-mod-php php-mysql -y echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php sudo ufw allow Apache Full 如果成功访问info.php&#xff0c;则环境安…

uniapp - iconfont下载本地并且运用至项目上

1、项目中创建一个文件夹放置iconfont相关文件&#xff0c;例如src/assets/iconfont&#xff08;名称自己定义&#xff09; 2、在iconfont下载项目至本地 3、解压后把文件复制进1的文件夹中 4、修改src/assets/iconfont - iconfont.css里的font-face的src地址&#xff0c;修…

黑马Redis详细笔记(实战篇---短信登录)

目录 一.短信登录 1.1 导入项目 1.2 Session 实现短信登录 1.3 集群的 Session 共享问题 1.4 基于 Redis 实现共享 Session 登录 一.短信登录 1.1 导入项目 数据库准备 -- 创建用户表 CREATE TABLE user (id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,phone …

企业级高并发全链路优化:流量分发、边缘防护与服务治理的整合之道

文章目录 第一章&#xff1a;引入概览1.1 高并发时代的业务挑战与背景1.2 全链路思维在高并发架构中的必要性1.3 解决方案总览&#xff1a;技术演进与混合架构模式 第二章&#xff1a;流量分发与边缘网络2.1 DNS 解析与全球流量调度2.2 LVS 与 Nginx 集群&#xff1a;流量负载均…