您的位置:首页 > 其它

一、Elasticsearch快速入门

2015-06-29 16:41 288 查看

一、Elasticsearch快速入门

什么是Elasticsearch?这个近几年在开源社区较为活跃的搜索引擎框架究竟能完成什么功能呢?本文会对其关键特性进行阐述,并通过一个简单的例子来体验一下Elasticsearch的基本功能。

0. Elasticsearch概述

概括来说,Elasticsearch是一个开源的分布式搜索引擎,基于Lucene实现。参考其官网上的相关介绍,归纳其核心特性如下:

Real-Time Data & Real-Time Analytics:对数据进行实时的索引、检索和统计分析

Distributed:具有强大的分布式集群功能

High Availability:HA是现代分布式存储系统必备的特性之一

Multitenancy:Elasticsearch的索引存储机制使其天然支持多租户

Full-Text Search:基于Lucene构建,支持全文检索功能

Document-Oriented:基于结构化JSON文档方式的存储结构,所有字段均可索引并进行实时搜索

Schema-Free:具备Nosql数据库的Schema-Free特性,无须事先为待存储的数据固定其Schema

Developer-Friendly, RESTful API:几乎全部的Elasticsearch操作都支持RESTful API的调用方式,使用非常简单

Per-Operation Persistence:Elasticsearch确保文档数据的变化会被相应的日志所记录,从而最大限度的减少数据的丢失

Apache 2 Open Source License:开源协议基于 Apache 2 license,省去很多麻烦

上述关键特性在后续的系列文章中均会有所介绍,读者现阶段只需要对其有个基本概念即可。

1. Elasticsearch安装

要安装Elasticsearch,首先要下载其对应的压缩文件,下载地址如下:https://www.elastic.co/downloads/elasticsearch,最近一段时间Elasticsearch的更新速度很快,笔者目前使用的是elasticsearch-1.4.4.tar.gz,读者可根据自己的需要自行选择版本,具体的安装过程并没有什么太大的出入。

1. 在linux上进行解压

在linux上执行如下的命令,对压缩文件进行解压

tar -zxvf elasticsearch-1.4.4.tar.gz


解压完毕后,会生成一个elasticsearch-1.4.4目录,如下所示:



2. 为Elasticsearch安装head插件

head插件是笔者用到最多的Elasticsearch插件,为了能以图形化界面更好的展现Elasticsearch中索引的数据形式,建议大家安装head插件,该插件的下载地址为:https://github.com/mobz/elasticsearch-head。下载并解压完毕后,将head插件放入elasticsearch-1.4.4的plugins目录下(如果该目录不存在,则需要通过mkdir手动创建一个),如下所示:



3. 启动Elasticsearch

进入到elasticsearch-1.4.4/bin目录下,执行如下命令

./elasticsearch


当看到如下控制台的输出提示后,证明Elasticsearch已经启动成功:



2. Elasticsearch使用示例

在Elasticsearch启动成功后,便可通过其提供的Rest API对数据进行索引及检索了,Elasticsearch默认提供的Rest API的HTTP端口为9200。调用API的方式,可以使用Linux自带的curl工具。

1. 索引数据

再启动一个shell,执行如下命令:

curl -XPUT http://localhost:9200/wordpress/article/1 -d '{  "title": "First title",  "content": "This my first article about elasticsearch!",  "readNum": 0,  "tags": ["first", "elasticsearch"]}'


返回结果如下,证明数据已经被成功索引到Elasticsearch中了:

{"_index":"wordpress","_type":"article","_id":"1","_version":1,"created":true}


2. 检索数据

如果要检索刚刚插入的数据,则可执行如下命令:

curl -XGET http://localhost:9200/wordpress/article/1?pretty[/code] 
检索结果如下:



3. 明确概念

事实上,笔者对Elasticsearch中的一大堆概念也是厌恶至极,但没有办法,不明确相应的概念是无法查阅Elasticsearch相关的文档的。这里笔者就通过上面的例子对以下四个关键概念进行解释:

- Index:Elasticsearch存储数据的地方,对应上例中的wordpress,类似于关系型数据库中的Database。

- Document type:对应上例中的article,类似于关系型数据库中的表(Table),一个Index中可以有多个Document type。

- Document:类似于关系型数据库中的一行数据,上例通过curl get方法返回的一条数据即为一个Document。

- Field:类似于关系型数据库中的列,如上例返回结果中的title、content等。

4. 使用head

明确了上述概念后,通过head插件,我们可以很方便的查看当前Elasticsearch节点的状态,如下所示:



进一步查看wordpress索引中的数据:



可见刚才索引的一条数据已索引成功。

3. 小结

本文通过一个简单的示例
4000
对Elasticsearch的基本使用进行了介绍,包括Elasticsearch的安装、启动、数据索引、数据检索及head插件的使用,明确了Elasticsearch中的四个关键概念:Index、Document type、Document及Field。后续的文章会对Elasticsearch的常用Rest API、常用插件及相关资料进行介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息