天天看点

Elasticsearch

Elasticsearch 是一个分布式的基于 RESTful 接口的搜索和分析引擎,它能够解决越来越多的使用场景。作为 Elastic Stack 的核心,它集中存储数据,可以发现预期及之外的结果。

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

​<code>​查询​</code>​ 保持好奇心。从数据中探寻各种问题的答案。

通过 Elasticsearch,您能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标),搜索方式随心而变。先从一个简单的问题出发,试试看能够从中发现些什么。

​<code>​分析​</code>​ 大处着眼,全局在握。

找到与查询最匹配的十个文档是一回事。但如果面对的是十亿行日志,又该如何解读呢?Elasticsearch 聚合让您能够从大处着眼,探索数据的趋势和模式。

​<code>​速度​</code>​ Elasticsearch 很快。 快到不可思议。

如果您能够立即获得答案,您与数据的关系就会发生变化。这样您就有条件进行迭代并涵盖更大的范围。

但是要达到这样的速度并非易事。我们通过有限状态转换器实现了用于全文检索的倒排索引,实现了用于存储数值数据和地理位置数据的 BKD 树,以及用于分析的列存储。

而且由于每个数据都被编入了索引,因此您再也不用因为某些数据没有索引而烦心。您可以用快到令人惊叹的速度使用和访问您的所有数据。

​<code>​可扩展性​</code>​ 可以在笔记本电脑上运行。 也可以在承载了 PB 级数据的成百上千台服务器上运行。

原型环境和生产环境可无缝切换;无论 Elasticsearch 是在一个节点上运行,还是在一个包含 300 个节点的集群上运行,您都能够以相同的方式与 Elasticsearch 进行通信。

它能够水平扩展,每秒钟可处理海量事件,同时能够自动管理索引和查询在集群中的分布方式,以实现极其流畅的操作。

​<code>​弹性​</code>​ 我们在您高飞的时候保驾护航。

硬件故障。网络分割。Elasticsearch 为您检测这些故障并确保您的集群(和数据)的安全性和可用性。通过跨集群复制功能,辅助集群可以作为热备份随时投入使用。

Elasticsearch 运行在一个分布式的环境中,从设计之初就考虑到了这一点,目的只有一个,让您永远高枕无忧。

​<code>​灵活性​</code>​ 具备多个案例场景?一个全有。

数字、文本、地理位置、结构化数据、非结构化数据。欢迎使用所有数据类型。

​​应用搜索​​、​​安全分析​​、​​指标​​或​​日志分析​​只是全球众多公司利用 Elasticsearch 解决各种挑战的冰山一角。

​<code>​操作的乐趣​</code>​ 享受更多成功的时刻,告别垂头丧气的失落

简单的事情就该简单做。我们确保 Elasticsearch 在任何规模下都能够易于操作,而无需在功能和性能方面做出牺牲。

​<code>​客户端库​</code>​ 使用您自己的编程语言与 Elasticsearch 进行交互

Elasticsearch 使用的是标准的 RESTful 风格的 API 和 JSON。此外,我们还构建和维护了很多其他语言的客户端,例如 ​​Java、Python、.NET、SQL 和 PHP​​。与此同时,我们的​​社区也贡献了很多客户端​​。这些客户端使用起来简单自然,而且就像 Elasticsearch 一样,不会对您的使用方式进行限制。

​<code>​尽享强大功能​</code>​ 延展 Elasticsearch

为您的集群添加用户名和密码,监控 Elasticsearch 的性能表现,通过运行 Machine Learning 任务来发现异常等等,这些特性尽在 ​​Elastic Stack 内置的多项功能​​。

通过 ​​Security​​、​​Monitoring​​、​​Alerting​​、​​Reporting​​、​​Graph 关联分析​​和 ​​Machine Learning​​ 等功能,获得更优的使用体验。

​<code>​HADOOP 和 SPARK​</code>​ Elasticsearch 加 Hadoop

Hadoop 中有大量数据?您可以使用 ​​Elasticsearch-Hadoop (ES-Hadoop)​​连接器,利用 Elasticsearch 的实时搜索和分析功能处理您的大数据。这是两大领域最大优势的融合。

集群:是由一个或者多个ES节点组成的集合。 每一个集群都有一个唯一的名字,默认是ElasticSearch。每个节点也都有唯一名字。

Elasticsearch

集群和节点

索引: 含有相同属性的文档集合,比如产品的索引,用户的索引等

类型:索引可以定义一个或多个类型,文档必须属于一个类型(一般会定义有相同字段的文档为一个类型)

文档:文档是可以被所有的基本数据单位,是整个ES中最小的存储单位

==索引在Es中是通过一个名字来识别的,而且它的名字必须是 英文字母小写,且不能有中划线。==

都是通过这个名字来进行增删查改。

<col>

ES

数据库

索引

实例database

类型

表-table

文档

一行记录

举例:图书索引 ---&gt; 文学类型、技能类型...----&gt;每一本书可以看成一个文档

分片: 每个索引都有多个分片,每个分片是一个Lucene索引

​ 分片的好处:假如数据量很大的话,就会造成硬盘的压力很大,同时搜索速度也会出现瓶颈,将索引分成多个分片,从而分摊压力提供效率。

备份:拷贝一份分片就完成了分片的备份,提供可用性

ES默认在创建索引的时候,会创建5个分片,1个备份。这个默认的数量是可以修改的。

​ number_of_shards: 每个索引的主分片数,默认值是 5 。这个配置在索引创建后不能修改。

​ number_of_replicas:每个主分片的副本数,默认值是 1 。对于活动的索引库,这个配置可以随时修改。

==注意==:索引的分片只能在创建索引的时候指定,而不能再后期进行修改。备份是可以动态修改的。

https://www.meiwen.com.cn/subject/mqhhiftx.html

 ​zhuanlan.zhihu.com/p/58966889

仅为记录学习之用,感谢分享!

继续阅读