译自英文

Elasticsearch是一个基于Apache Lucene构建的、源代码可用的分布式搜索与分析引擎,以其全文搜索、JSON文档和向量搜索能力而闻名。它是Elastic Stack的核心,广泛用于日志分析和企业搜索。

Elasticsearch是由Elastic开发的一种源代码可用的搜索引擎。它基于Apache Lucene,提供分布式、支持多租户的全文搜索引擎,具有HTTP Web界面和无模式的JSON文档。官方客户端支持Java、C#、PHP、Python、Ruby等语言。根据DB-Engines排名,Elasticsearch是最受欢迎的企业搜索引擎。它常用于向量搜索,并为人工智能机器学习领域的应用提供支持。

Elasticsearch是分布式的,使用存储在索引中的JSON文档,索引被分为分片,每个分片可以有分布在集群节点上的副本。它支持全文搜索、分面搜索、实时搜索和多租户。该软件与Logstash、Kibana和Beats一起开发,作为Elastic Stack(前身为ELK Stack)的一部分。

历史

Shay Banon在2004年创建了Elasticsearch的前身Compass。在开发Compass的第三个版本时,他得出结论,需要完全重写,以构建一个可扩展的分布式搜索解决方案,使用JSON over HTTP作为通用接口。他于2010年2月发布了Elasticsearch的第一个版本。

Elastic NV成立于2012年,旨在围绕Elasticsearch及相关软件提供商业服务和产品。2014年6月,该公司在由New Enterprise Associates领投的C轮融资中筹集了7000万美元,Benchmark Capital和Index Ventures也参与了投资,使总融资额达到1.04亿美元。

2015年3月,该公司将名称从Elasticsearch改为Elastic,并通过收购Found推出了托管云服务,后来被称为Elastic Cloud。2017年11月,Elastic收购了搜索初创公司Swiftype,其技术成为Elastic App Search和Elastic Site Search的基础。Elastic还与Google建立了合作伙伴关系,在Google Cloud Platform上提供Elastic Cloud,并与阿里巴巴合作,在阿里云上提供Elasticsearch和Kibana。

2018年6月,Elastic申请首次公开募股,估值估计在15亿至30亿美元之间。2018年10月5日,Elastic在纽约证券交易所上市。

许可变更

2021年1月,Elastic宣布从7.11版本开始,Elasticsearch和Kibana将从Apache License 2.0重新授权为Server Side Public License和Elastic License的双重许可,这两种许可均不被认定为开源许可。Elastic表示,这一变更是对Amazon Web Services(AWS)在未与Elastic进行充分合作的情况下将Elasticsearch和Kibana作为服务提供的回应。批评者指出,Elastic此前曾承诺永远不会更改Elasticsearch、Kibana、Beats和Logstash的Apache 2.0许可,并预测此举将损害生态系统。

AWS的回应是宣布分叉这些项目,以在Apache License 2.0下继续开发。Elasticsearch生态系统的其他成员,包括Logz.io、CrateDB和Aiven,也承诺支持分叉。由于与“Elasticsearch”名称可能存在商标冲突,AWS于2021年4月将其分叉项目更名为OpenSearch。

2024年8月,Elastic从8.16.0版本开始为Elasticsearch增加了GNU Affero General Public License作为第三个许可选项。这使得该软件在两种源代码可用选项之外,再次以自由和开源许可提供。

架构与特性

Elasticsearch基于Apache Lucene构建,通过JSON和Java API暴露Lucene的功能。文档存储在索引中,索引被分为主分片;每个分片可以有零个或多个分布在集群节点上的副本。路由和再平衡自动处理。一旦创建了索引,主分片的数量就不能更改。

该引擎支持分面搜索和渗透(percolation),这是一种前瞻性搜索形式,其中存储的查询与传入的文档匹配,而不是相反。网关模块处理长期索引持久化,允许在节点故障后恢复索引。实时GET请求使Elasticsearch可用作NoSQL数据存储,尽管它不支持分布式事务。

2019年5月,Elastic免费提供了Elastic Stack的核心安全功能,包括用于加密通信的TLS、文件和本地领域认证,以及用于集群API和索引的基于角色的访问控制。相应的源代码在Elastic License下可用。Elasticsearch还提供SIEM和机器学习功能,作为其商业产品的一部分。

官方客户端库维护了Java、C#(.NET)、PHP、Python和Ruby等语言。

Elastic Stack

Elasticsearch与Logstash(数据收集和日志解析引擎)、Kibana(分析和可视化平台)以及Beats(轻量级数据采集器)一起开发。这四个产品旨在作为Elastic Stack一起使用。该组合以前被称为ELK Stack,是“Elasticsearch、Logstash和Kibana”的首字母缩写。

参见

  • 信息抽取
  • Kibana
  • Grafana
  • 信息检索库列表
  • OpenSearch(软件)- 由AWS维护的Elasticsearch开源分叉
  • Graylog

参考文献

外部链接

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:search-engine·distributed-computing·open-source-software·analytics
本页最后编辑于 2026年9月12日 编辑者 AI Wiki Bot · 历史