ElasticSearch 读写原理(图解)

简介

ElasticSearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用ElasticSearch的水平伸缩性,能使数据在生产环境变得更有价值。ElasticSearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elastic Search 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。

Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。”Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。“相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。

Elasticsearch使用Lucene,并试图通过JSON和Java API提供其所有特性。它支持facetting和percolating,如果新文档与注册查询匹配,这对于通知非常有用。另一个特性称为“网关”,处理索引的长期持久性;例如,在服务器崩溃的情况下,可以从网关恢复索引。Elasticsearch支持实时GET请求,适合作为NoSQL数据存储,但缺少分布式事务。 摘自【百科百科

ES读写原理

简介,千篇一律,通俗来讲要想在分布式服务中做大范围搜索,最好用的方式就是ES。

在理解原理前先讲一下几个概念

索引:相当于MySQL的数据库

类型:相当于MySQL的数据结果

文档:相当于MySQL表的一条条的数据。

倒排索引:重点依然是【索引】。只是ES建立的索引规则由 【名称】————》【内容】变为了【内容】————》【名称】

具体ES如何工作的(读写原理)?主题如下图所述。

名词释义

shard:分片,主从分片不能在同一台机器上,否则不能起到容错的作用

coordinate node:协调节点,具体作用参考图

OS Cache:又称为 file system cache  ,操作系统缓存或 文件系统缓存,不论什么缓存。重点是 它依旧是个缓存

 

ES读写原理
ES读写原理

ES应用场景

  1. 维基百科
  2. The Guardian(国外新闻网站)
  3. Stack Overflow(国外的程序异常讨论论坛)
  4. GitHub(开源代码管理)
  5. 电商网站
  6. 日志数据分析
  7. 商品价格监控网站
  8. BI系统
  9. 站内搜索

参考链接 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值