ElasticSearch-入门

 

 

简介

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的问题。

 

 

 

 

 

概念介绍

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等的传输协议(通过插件方式集成)。

 

 

 

 

 

环境搭建

下载ElasticSearch 2.4

修改主节点配置 $ELASTIC_SEARCH_HOME\config下的 elasticsearch.yml文件

增加一段配置

第一行是集群的名称,集群中其他节点都需要配置成一样的

第二个是节点的名称

第三个是对外暴露的ip,如果不写的话,默认只能本机访问,外部机器访问web界面都会失败

cluster.name: es-test
node.name: test-node1
network.host: 192.168.186.128

 

默认情况下,elastic search不允许用root用户启动,如果一定要用root用户启动,需要修改

elasticsearch.in.sh,修改JAVA_OPTS

JAVA_OPTS="$JAVA_OPTS -Xms${ES_MIN_MEM} -Des.insecure.allow.root=true"

 

启动主节点

直接执行

$ELASTIC_SEARCH_HOME\bin\ ./elasticsearch

 

 

修改从节点,最后一行是需要加入的节点地址

cluster.name: es-test
node.name: test-node3
network.host: 192.168.186.132
discovery.zen.ping.unicast.hosts: ["192.168.186.128"]

 

 

安装head插件

./plugin -install mobz/elasticsearch-head

 

web界面

http://192.168.186.128:9200/_plugin/head/

 

 

 

 

参考

elasticsearch集群搭建实例

Elasticsearch-2.x应用填坑之路

搜索引擎选择: Elasticsearch与Solr

ElasticSearch入门 —— 集群搭建

使用elasticsearch遇到的一些问题以及解决方法(不断更新)

Elasticsearch-2.x应用填坑之路

 

猜你喜欢

转载自xxniao.iteye.com/blog/2323914