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完整代…...
前沿科技改变生活新趋势
纳米技术在电子设备制造中的应用越来越广泛。这种技术能够帮助制造更小、更快、更耐用的电子产品。 举个例子,手机的处理器是其核心部件。随着纳米技术的进步,现在的处理器比以前小得多,但功能却更强。这样不仅让手机变得更轻薄,…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...
背包问题双雄:01 背包与完全背包详解(Java 实现)
一、背包问题概述 背包问题是动态规划领域的经典问题,其核心在于如何在有限容量的背包中选择物品,使得总价值最大化。根据物品选择规则的不同,主要分为两类: 01 背包:每件物品最多选 1 次(选或不选&#…...
