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

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

相关文章:

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

作者:来自 Elastic Shay Banon 及 Philipp Krenn Elasticsearch 刚刚 15 岁了!回顾过去 15 年的索引和搜索,并展望未来 15 年的相关内容。 Elasticsearch 刚刚成立 15 周年。一切始于 2010 年 2 月的一篇公告博客文章(带有标志性的…...

信呼OA办公系统sql注入漏洞分析

漏洞描述 信呼OA办公系统uploadAction存在SQL注入漏洞,攻击者可利用该漏洞获取数据库敏感信息。 环境搭建 源码下载地址:https://github.com/rainrocka/xinhu 下载后解压到本地网站根目录下,配置好数据库,然后安装即可 默认密…...

TDengine 客户端连接工具 taos-Cli

简介工具获取运行命令行参数 基础参数高级参数 数据导出/导入 数据导出数据导入 执行 SQL 脚本使用小技巧 TAB 键自动补全设置字符列显示宽度其它 错误代码表 简介 TDengine 命令行工具(以下简称 TDengine CLI)是用户操作 TDengine 实例并与之交互最简…...

机器学习算法 - 随机森林之决策树初探(1)

随机森林是基于集体智慧的一个机器学习算法,也是目前最好的机器学习算法之一。 随机森林实际是一堆决策树的组合(正如其名,树多了就是森林了)。在用于分类一个新变量时,相关的检测数据提交给构建好的每个分类树。每个…...

原生Three.js 和 Cesium.js 案例 。 智慧城市 数字孪生常用功能列表

对于大多数的开发者来言,看了很多文档可能遇见不到什么有用的,就算有用从文档上看,把代码复制到自己的本地大多数也是不能用的,非常浪费时间和学习成本, 尤其是three.js , cesium.js 这种难度较高&#xff…...

在 PyCharm 中接入deepseek的API的各种方法

在 PyCharm 中接入 DeepSeek 的 API,通常需要以下步骤: 1. 获取 DeepSeek API 密钥 首先,确保你已经在 DeepSeek 平台上注册并获取了 API 密钥(API Key)。如果没有,请访问 DeepSeek 的官方网站注册并申请 …...

Haskell语言的软件工程

Haskell语言的软件工程 引言 在软件工程的领域中,选择合适的编程语言是每个开发者都需要面对的重要决策。作为一种功能强大的函数式编程语言,Haskell凭借其独特的特性和优势逐渐在许多软件项目中占据一席之地。本文将深入探讨Haskell语言在软件工程中的…...

【2025新】基于springboot的问卷调查小程序设计与实现

目录 一、整体目录(示范): 文档含项目技术介绍、E-R图、数据字典、项目功能介绍与截图等 二、运行截图 三、代码部分(示范): 四、数据库表(示范): 数据库表有注释,可以导出数据…...

数据结构——Makefile、算法、排序(2025.2.13)

目录 一、Makefile 1.功能 2.基本语法和相关操作 (1)创建Makefile文件 (2)编译规则 (3)编译 (4)变量 ①系统变量 ②自定义变量 二、 算法 1.定义 2.算法的设计 &#xff…...

思科、华为、H3C常用命令对照表

取消/关闭 思科no华为undo华三undo 查看 思科show华为display华三display 退出 思科exit华为quit华三quit 设备命名 思科hostname华为sysname华三sysname 进入全局模式 思科enable、config terminal华为system-view华三system-view 删除文件 思科delete华为delete华…...

learn_pytorch

第三章 深度学习分为如下几个步骤 1:数据预处理,划分训练集和测试集 2:选择模型,设定损失函数和优化函数 3:用模型取拟合训练数据,并在验证计算模型上表现。 接着学习了一些数据读入 模型构建 损失函数的构…...

什么是Docker多架构容器镜像

什么是Docker多架构容器镜像 在 Docker 中,同一个 Docker 镜像可以在不同的平台上运行,例如在 x86、ARM、PowerPC 等不同的 CPU 架构上。 为了支持这种多平台的镜像构建和管理,Docker 在 17.06 版本时引入了 Manifest 的概念,在…...

【devops】 Git仓库如何fork一个私有仓库到自己的私有仓库 | git fork 私有仓库

一、场景说明 场景: 比如我们Codeup的私有仓库下载代码 放入我们的Github私有仓库 且保持2个仓库是可以实现fork的状态,即:Github会可以更新到Codeup的最新代码 二、解决方案 1、先从Codeup下载私有仓库代码 下载代码使用 git clone 命令…...

【Elasticsearch】字符过滤器Character Filters

在 Elasticsearch 中,字符过滤器(Character Filters)是文本分析器的重要组成部分,用于在分词之前对原始文本进行预处理。它们可以对字符流进行转换,例如添加、删除或更改字符。Elasticsearch 提供了三种内置的字符过滤…...

RocketMQ及和Kafka的区别

目录 1 从场景入手2 RocketMQ是什么?3 RocketMQ及和Kafka的区别3.1 在架构上做了减法3.1.1 简化协调节点3.1.2 简化分区3.1.3 底层存储3.1.3.1 Kafka底层存储3.1.3.1 RocketMQ底层存储 3.1.4 简化备份模型3.1.4.1 Kafka备份模型3.1.4.2 RocketMQ备份模型 3.1.5 Rock…...

设置ollama接口能外部访问

为了配置Ollama以允许外网访问,你可以按照以下步骤进行操作: ‌确认Ollama服务已正确安装并运行‌: 使用以下命令检查Ollama服务的状态: bash Copy Code systemctl status ollama如果服务未运行,使用以下命令启动它&…...

数组_移除元素

数组_移除元素 一、leetcode-27二、题解1.代码2.思考 一、leetcode-27 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数…...

【含文档+PPT+源码】基于微信小程序的乡村振兴民宿管理系统

项目介绍 本课程演示的是一款基于微信小程序的乡村振兴民宿管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该…...

macOs在vscode编辑器的cmd中,比如npm i 总是提示权限不够需要sudo

mac Os Apple M2 Pro在vscode 编辑器的cmd中比如npm i 总是提示权限不够,总要sudo npm i : 报错如下: npm warn peer webpack"^2.0.0 || ^3.0.0 || ^4.0.0" from the root project npm error code EACCES npm error syscall open npm error p…...

Vim 退出编辑模式

1. 按 Esc 键 按下键盘上的 Esc 键是最常见和推荐的方式。这会将光标从插入模式切换回普通模式。按下 Esc 键后,你就可以使用普通模式下的命令进行编辑。 2. 使用 Ctrl [ 在一些终端中,你也可以使用组合键 Ctrl [ 来模拟按下 Esc 键的效果。这对于一…...

【流程图】在 .NET (WPF 或 WinForms) 中实现流程图中的连线算法

在 .NET (WPF 或 WinForms) 中实现流程图中的连线算法,通常涉及 图形绘制 和 路径计算。常见的连线方式包括 直线、折线 和 贝塞尔曲线。以下是几种方法的介绍和示例代码。 1. 直线连接(最简单) 适用场景: 两个节点之间没有障碍…...

Linux查找占用的端口,并杀死进程的简单方法

在Linux系统管理中,识别并管理占用特定端口的进程是一项常见且重要的任务。以下是优化过的步骤指南,帮助您高效地完成这一操作,同时提供了一个简洁的命令参考表。 Linux下识别并终止占用端口的进程 1. 探寻端口占用者 使用 lsof命令 lsof…...

【python语言应用】最新全流程Python编程、机器学习与深度学习实践技术应用(帮助你快速了解和入门 Python)

近年来,人工智能领域的飞速发展极大地改变了各个行业的面貌。当前最新的技术动态,如大型语言模型和深度学习技术的发展,展示了深度学习和机器学习技术的强大潜力,成为推动创新和提升竞争力的关键。特别是PyTorch,凭借其…...

Datawhale Ollama教程笔记3

小白的看课思路: Ollama REST API 是什么? 想象一下,你有一个智能的“盒子”(Ollama),里面装了很多聪明的“小助手”(语言模型)。如果你想让这些“小助手”帮你完成一些任务&#…...

基于JavaWeb开发的Java+Spring+vue+element实现旅游信息管理平台系统

基于JavaWeb开发的JavaSpringvueelement实现旅游信息管理平台系统 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各…...

基础网络详解4--HTTP CookieSession 思考 2

一、Cookie与Set-Cookie 1. Cookie 定义: Cookie 是客户端(通常是浏览器)存储的一小段数据,由服务器通过 Set-Cookie 响应头设置,并在后续请求中通过 Cookie 请求头发送回服务器。作用: 用于在客户端保存状态信息,例…...

2.14日学习总结

题目一:接雨水问题 1.题目描述:给定一个数组 height 表示一个地形的高度图,数组中的每个元素代表每个宽度为 1 的柱子的高度。计算按此排列的柱子,下雨之后能接多少雨水。 2.示例:输入 height [0,1,0,2,1,0,1,3,2,1…...

【技术产品】DS三剑客:DeepSeek、DataSophon、DolphineSchduler浅析

引言 在大数据与云原生技术快速发展的时代,开源技术成为推动行业进步的重要力量。本文将深入探讨三个备受瞩目的开源产品组件:DeepSeek、DataSophon 和 DolphinScheduler,分别从产品定义、功能、技术架构、应用场景、优劣势及社区活跃度等方面…...

Go 语言里中的堆与栈

在 Go 语言里,堆和栈是内存管理的两个重要概念,它们在多个方面存在明显差异: 1. 内存分配与回收方式 栈 分配:Go 语言中,栈内存主要用于存储函数的局部变量和调用信息。当一个函数被调用时,Go 会自动为其…...

云计算实训室解决方案(2025年最新版)

一、中高职及本科院校在云计算专业建设中面临的挑战 随着大数据、信息安全、人工智能等新兴信息技术产业的快速发展,相关领域人才需求激增,许多本科及职业院校纷纷开设云计算及相关专业方向。 然而,大多数院校在专业建设过程中面临以下困难&…...