赞
踩
Elasticsearch 是一个分布式、高扩展、高实时、具有 RESTful 风格的的搜索与数据分析引擎。它不仅仅是一个全文搜索、分布式实时分析搜索引擎还是一个分布式的实时文档存储,能够做到上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据。能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。
Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。一般我们可以把ES配合logstash,kibana来做日志分析系统,或者是搜索方面的系统功能,比如在网上商城系统里实现搜索商品的功能也会用到ES。
Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
客户端选择一个协调节点(coordinating node)(ES的任意节点都可以作为协调节点接受请求)发送过去,协作节点使用文档 ID 将 文档路由到对应的分片,通过索引中的主分片数量进行取模运算,取模算法(路由原理)如公式所示:
shard = hash(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。