怎样使用Elastic Search

2016年8月29日 | 分类: 【技术】

【介绍】

Elastic Search 是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。ElasticSearch 提供多种语言的客户端 API:Java API、PHP API、Python API等。

官网:https://www.elastic.co/
中文:http://elasticsearch.cn/

【比较】

参考:http://itindex.net/detail/52601-%E7%B4%A2%E5%BC%95-%E5%B7%A5%E5%85%B7-lucene
参考:https://yq.aliyun.com/articles/54636
参考:http://lutaf.com/158.htm
参考:http://www.cnblogs.com/ibook360/archive/2013/03/22/2975345
参考:http://www.wxdl.cn/index/solr4-solrcloud-elasticsearch-es

【安装】

安装:https://amon.org/elasticsearch-docker
安装:https://amon.org/elasticsearch-rpm
安装:https://amon.org/elasticsearch-ubuntu
安装:https://amon.org/elasticsearch-centos

参考:https://blog.csdn.net/jinhong618/article/details/103606687

【概念】

参考:https://www.jianshu.com/p/4512eed21de5

需要我们注意的是,这些概念理解只是解释其含义,不推荐强制翻译成中文。

Index:这是ES存储数据的地方,类似于关系数据库的database。
Document type:类似关系数据库的表,主要功能是将完全不同schema的数据分开,一个index里面可以有若干个Document type。
Document:类似关系数据库的一行,在同一个Document type下面,每一Document都有一个唯一的ID作为区分;
Filed:类似关系数据库的某一列,是ES数据存储的最小单位。
Cluster和Node:ES可以以单点或者集群方式运行,以一个整体对外提供search服务的所有节点组成cluster,组成这个cluster的各个节点叫做node。
shard:通常叫分片,是ES提供分布式搜索的基础,其含义为将一个完整的index分成若干部分存储在相同或不同的节点上,这些组成index的部分就叫做shard。
Replica:和replication通常指的是一回事,即index的冗余备份,可以用于防止数据丢失,或者用来做负载分担。

安装:

参考:https://www.quyu.net/info/392.html
参考:http://blog.hackroad.com/operations-engineer/linux_server/11228
参考:http://www.cnblogs.com/iiiiher/p/5727233

下载安装包解压到某个目录即完成安装。

下载:https://www.elastic.co/downloads/elasticsearch

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.5/elasticsearch-2.3.5.tar.gz && tar zxvf elasticsearch-2.3.5.tar.gz && cd elasticsearch-2.3.5 && cp -R elasticsearch-2.3.5 /usr/local/elasticsearch/

在终端给bin下的文件赋予执行权限:

chmod 777 /usr/local/elasticsearch/bin/elasticsearch

修改配置文件 /usr/local/elasticsearch/config/elasticsearch.yml :


不加-f也是可以的,那就是以后台运行,停止的时候需要kill掉当前的进程。

启动:

/usr/local/elasticsearch/bin/elasticsearch -f

停止:

ctrl^c组合键

检测:

打开浏览器输入 http://localhost:9200 ,如果有相关信息显示或者要你下载,那就是成功了,否则那就检查下端口是否被占用等问题。

【应用】

基于Django/Scrapy/ElasticSearch的搜索引擎的实现

参考:http://blog.csdn.net/geekcome/article/details/12845941