一 ElasticSearch 简介
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。ElasticSearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级(1024G=1TB,1024G=1PB)的数据。它可以在很短的时间内在存储、搜索和分析大量的数据。2010年5月4日发布第一个版本0.7,到目前最新版本(2022年7月29日发布)是8.3.3版本;作为Search Engines受欢迎程度对它们进行排名,根据月度排行网站DB-Engines.com的数据,排名每月更新一次, 从下图,清晰看到ElasticSearch的排名为第一,作为搜索引擎,遥遥领先于其它的搜索引擎,ElasticSearch作为排名第一搜索引擎实至名归。

二 ElasticSearch 使用场景
2.1 记录和日志分析
围绕Elasticsearch构建的生态系统使其成为最容易实施和扩展日志记录解决方案之一。利用这一点来将日志记录添加到主要用例中,或者纯粹用于日志记录。从Beats,Logstash到Ingest Nodes,Elasticsearch为您提供了大量的选项,可以在任何地方获取数据并将其索引化。然后,使用Kibana工具使您能够创建丰富的仪表板和分析。
2.2 采集和组合公共数据
与日志数据一样,Elastic Stack拥有大量工具,可以轻松抓取和索引远程数据。此外,与大多数文档存储一样,非严格的模式使Elasticsearch可以灵活地接收多个不同的数据源, 并能使得这些数据可以管理和搜索。Twitter连接器,它允许您设置在Twitter上看到的主题标签,然后采集这些主题标签的相关推文并在Kibana中进行分析。Elastic在核心Elastic Stack组件上构建了该产品,并添加了一些额外的部件以帮助扩展。
2.3 全文搜索
作为Elasticsearch的核心功能,全文搜索在此列表中占据重要位置。Elasticsearch的客户群中的全文检索的应用远远超出了传统的企业搜索,这也证明Elasticsearch的搜索功能强大,灵活,并且包含大量工具以使搜索更容易; Elasticsearch有自己的查询DSL、内置的自动补全功能等等。
2.4 事件数据和指标
Elasticsearch还可以很好地处理时间序列数据,如指标(metrics )和应用程序事件。这是另一个Beats生态系统允许大家轻松获取常见应用程序数据的区域。无论使用何种技术,Elasticsearch都有很好的机会获取开箱即用的指标和事件,添加该功能非常简单。
2.5 数据可视化
凭借大量的图表选项,地理数据的平铺服务和时间序列数据的TimeLion,Kibana是一款功能强大且易于使用的可视化工具。对于上面的每个用例,Kibana都会处理一些可视化组件。一旦您对各种数据提取工具感到满意,您就会发现Elasticsearch + Kibana将成为您可视化数据的首选工具。
2.6 使用 ElasticSearch作为后端 存储
传统项目中,搜索引擎是部署在成熟的数据存储的顶部,以提供快速且相关的搜索能力。这是因为早期的搜索引擎不能提供耐用的存储或其他经常需要的功能,如统计。
2 .7 使用案例
维基百科,Stack Overflow,饿了么物流系统,京东到家订单系统,携程酒店订单、机票,去哪儿订单等等

如果你开始一个新项目,我们建议您考虑使用Elasticsearch作为数据存储,以帮助保持你的设计尽可能简单。此种场景不支持包含频繁更新、事务(transaction)的操作。