elasticsearch


elasticsearch

文章插图
elasticsearchElasticSearch是一个基于Lucene的搜寻伺服器 。它提供了一个分散式多用户能力的全文搜寻引擎,基于RESTful web接口 。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜寻引擎 。设计用于云计算中,能够达到实时搜寻,稳定,可靠,快速,安装使用方便 。
【elasticsearch】我们建立一个网站或应用程式,并要添加搜寻功能,但是想要完成搜寻工作的创建是非常困难的 。我们希望搜寻解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜寻模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜寻伺服器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜寻,我们要简单的多租户,我们希望建立一个云的解决方案 。因此我们利用Elasticsearch来解决所有这些问题及可能出现的更多其它问题 。
基本介绍外文名:Elastic Search
设计用途:用于分散式全文检索
技术支持:通过HTTP使用JSON进行数据索引
主要目的:解决人们对于搜寻的众多要求
简称:ES
安装以windows作业系统和ES0.19.7版本为例:①下载elasticsearch-6.4.1.zip②直接解压至某目录,设定该目录为ES_HOME环境变数③安装JDK,并设定JAVA_HOME环境变数④在windows下,运行 %ES_HOME%\bin\elasticsearch.bat即可运行安装外挂程式以head外挂程式为例:联网时,直接运行%ES_HOME%\bin\plugin --install mobz/elasticsearch-head不联网时,下载elasticsearch-head的zipball的master包,然后运行%ES_HOME%\bin\plugin --url file:///[path-to-downloadfile] --install head,其中[path-to-downloadfile]是下载后master包的绝对路径安装完成,重启服务,在浏览器打开 http://localhost:9200/_plugin/head/ 即可ES概念cluster代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的 。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的 。shards代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上 。构成分散式搜寻 。分片的数量只能在索引创建前指定,并且索引创建后不能更改 。replicas代表索引副本,es可以设定多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复 。二是提高es的查询效率,es会自动对搜寻请求进行负载均衡 。recovery代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复 。river代表es的一个数据源,也是其它存储方式(如:资料库)同步数据到es的一个方法 。它是以外挂程式方式存在的一个es服务,通过读取river中的数据并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的 。gateway代表es索引快照的存储方式,es默认是先把索引存放到记忆体中,当记忆体满了时再持久化到本地硬碟 。gateway对索引快照进行存储,当这个es集群关闭再重新启动时就会从gateway中读取索引备份数据 。es支持多种类型的gateway,有本地档案系统(默认),分散式档案系统,Hadoop的HDFS和amazon的s3云存储服务 。discovery.zen代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协定来进行节点之间的通信,同时也支持点对点的互动 。Transport代表es内部节点或集群与客户端的互动方式,默认内部是使用tcp协定进行互动,同时它支持http协定(json格式)、thrift、servlet、memcached、zeroMQ等的传输协定(通过外挂程式方式集成) 。