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 年):Elasticsearch 与 Logstash 和 Kibana 联手形成了 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 月的一篇公告博客文章(带有标志性的…...

DeepSeek大模型一键部署解决方案:全平台多机分布式推理与国产硬件优化异构计算私有部署
DeepSeek R1 走红后,私有部署需求也随之增长,各种私有部署教程层出不穷。大部分教程只是简单地使用 Ollama、LM Studio 单机运行量化蒸馏模型,无法满足复杂场景需求。一些操作配置也过于繁琐,有的需要手动下载并合并分片模型文件&…...
Docker 部署 MySQL-5.7 单机版
一、镜像获取 # docker hub 镜像 docker pull farerboy/mysql:5.7 # 国内阿里镜像 docker pull registry.cn-hangzhou.aliyuncs.com/farerboy/mysql:5.7 以上两个镜像二选一即可 二、运行容器 docker run -dti --name mysql \n --privileged \n --cgroupns private \n --e…...
打破AI黑盒,拥抱开源力量:基于openGauss+DeepSeek的本地知识库,打造你的专属AI助手!
引言:什么是RAG和LLM? LLM (Large Language Model,大语言模型): 就像 ChatGPT 这样的 AI 模型,拥有强大的语言理解和生成能力,但它们的知识局限于训练数据,且可能产生“幻觉”(即生成不准确的信…...

java配置api,vue网页调用api从oracle数据库读取数据
一、主入口文件 1:java后端端口号 2:数据库类型 和 数据库所在服务器ip地址 3:服务器用户名和密码 二、映射数据库表中的数据 resources/mapper/.xml文件 1:column后变量名是数据库中存储的变量名 property的值是column值的…...

visual studio导入cmake项目后打开无法删除和回车
通过Cmakelists.txt导入的项目做删除和回车无法响应,需要点击项目,然后选择配置项目就可以了...

linux运行kettle 遇到问题汇总
1、把本地的repositories.xml 放在跟目录 2、配置机台名解析 vi /etc/hosts bogon是服务器名字,根据实际情况修改 3、指定内存和字符集 vi spoon.sh -Xms1024m -Xmx2048m -Dfile.encodingUTF-8 4、执行kettle job ./kitchen.sh /rep pg_kettle /user admin /pa…...

初识camel智能体(一)
同目录下配置环境变量.env,内容如下, apikey从魔搭社区获取 QWEN_API_KEY4ff3ac8f-aebc******** 先上干货代码,主代码如下: from colorama import Forefrom camel.societies import RolePlaying from camel.utils import prin…...

如何在Excel和WPS中进行翻译
文档翻译我们可以用在线翻译工具,Excel工作表的翻译使用在线翻译工具就不是特别方便,那么如何快速进行翻译呢,我们今天介绍在不同的场景下如何利用翻译函数和Python程序来实现单元格的快速翻译。 一、在wps中进行翻译 WPS是我们常用的办公软…...
TCP的拥塞控制
什么是TCP的拥塞控制?它的工作原理是什么?为什么需要拥塞控制? TCP拥塞控制简介 想象一下,你和一群朋友在一条狭窄的小路上跑步。如果每个人都拼命跑,小路很快就会变得拥挤不堪,大家互相碰撞,…...

【前端】几种常见的跨域解决方案代理的概念
几种常见的跨域解决方案&代理的概念 一、常见的跨域解决方案1. 服务端配置CORS(Cross-Origin Resource Sharing):2. Nginx代理3. Vue CLI配置代理:4 .uni-app在manifest.json中配置代理来解决:5. 使用WebSocket通讯…...
C++之2048小游戏 第二期
不是,一天点赞就到15了?!好吧,那我更新一下 1. 逻辑 (真的有人会看吗?) 注:本文1.1章为AI生成,如有错误欢迎在评论其指出! 1.1 普通/最初逻辑 这里我们首…...

Redis7——基础篇(一)
前言:此篇文章系本人学习过程中记录下来的笔记,里面难免会有不少欠缺的地方,诚心期待大家多多给予指教。 基础篇: Redis(一) 一、Redis定义 官网地址:Redis - The Real-time Data Platform R…...

day9手机创意软件
趣味类 in:记录趣味生活(通用) 魔漫相机:真人变漫画(通用) 活照片:让照片活过来(通用) 画中画相机:与众不同的艺术 年龄检测仪:比一比谁更年轻…...
C# Dictionary的实现原理
在 C# 中,Dictionary<TKey, TValue> 是一个基于哈希表(Hash Table)实现的键值对集合。它提供了高效的插入、删除和查找操作,平均时间复杂度接近 O(1)。下面是 Dictionary 的核心实现原理: 1. Dictionary 的核心数…...
学习笔记-人脸识别相关编程基础
通过编程实现人脸识别功能,需要掌握一定的技术基础,包括编程语言、图像处理、机器学习以及相关的库和框架: 1. 编程语言 Python:Python 是实现人脸识别最常用的语言之一,因为它有大量的库和框架支持,如 Op…...

BUU37 [DASCTF X GFCTF 2024|四月开启第一局]web1234【代码审计/序列化/RCE】
Hint1:本题的 flag 不在环境变量中 Hint2:session_start(),注意链子挖掘 题目: 扫描出来www.zip class.php <?phpclass Admin{public $Config;public function __construct($Config){//安全获取基…...

(五)Spring Boot学习——spring security +jwt使用(前后端分离模式)
一定要熟悉spring security原理和jwt无状态原理,理解了才知道代码作用。 在 Spring Security JWT 认证流程中,通常的做法是: 用户提交用户名和密码Spring Security 认证管理器 (AuthenticationManager) 进行认证如果认证成功,生…...

Java中使用EasyExcel
Java中使用EasyExcel 文章目录 Java中使用EasyExcel一:EasyExcel介绍1.1、核心函数导入数据导出数据 1.2、项目实际应用导入数据导出数据 1.3、相关注解ExcelProperty作用示例 二:EasyExcel使用2.1、导入功能2.2、导出功能 三:EasyExcel完整代…...
前沿科技改变生活新趋势
纳米技术在电子设备制造中的应用越来越广泛。这种技术能够帮助制造更小、更快、更耐用的电子产品。 举个例子,手机的处理器是其核心部件。随着纳米技术的进步,现在的处理器比以前小得多,但功能却更强。这样不仅让手机变得更轻薄,…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)
经过前面几期的内容我们学习了很多网络安全的知识,而这期内容就涉及到了前面的第六期-RCE模块,第七期-File inclusion模块,第八期-Unsafe Filedownload模块。 什么是"遍历"呢:对学过一些开发语言的朋友来说应该知道&…...
TMC2226超静音步进电机驱动控制模块
目前已经使用TMC2226量产超过20K,发现在静音方面做的还是很不错。 一、TMC2226管脚定义说明 二、原理图及下载地址 一、TMC2226管脚定义说明 引脚编号类型功能OB11电机线圈 B 输出 1BRB2线圈 B 的检测电阻连接端。将检测电阻靠近该引脚连接到地。使用内部检测电阻时,将此引…...