elasticsearch 基本安装

一、下载及配置
1.几个基本名词
index: es里的index相当于一个数据库。
type: 相当于数据库里的一个表, 5支持多个6支持1个7将会移除。
id: 唯一,相当于主键。
node:节点是es实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保http和tcp端口不同(下面有讲)。
cluster:代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。
shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
replicas:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

二、配置、运行和关闭 elasticsearch
1.配置内存:
配置文件config/jvm.options, 内存大小不要超过物理内存的50%,并且不要超过32G

-Xms4g
-Xmx4g

当然也可以在启动es的时候手动指定

2.启动elasticsearch

ES_JAVA_OPTS="-Xms4g -Xmx4g" ./bin/elasticsearch 

若想让es后台运行,则

ES_JAVA_OPTS="-Xms4g -Xmx4g" ./bin/elasticsearch -d

3.关闭elasticsearch:
前台运行:可以通过”CTRL+C”组合键来停止运行
后台运行,可以通过”kill -9 进程号”停止.也可以通过REST API接口:

curl -XPOST http://127.0.0.1:9200/_cluster/nodes/_shutdown

来关闭整个集群,通过:

curl -XPOST http://127.0.0.1:9200/_cluster/nodes/节点标示符(如es-node1)/_shutdown

来关闭单个节点.

三、插件及其安装
Elasticsearch Head Plugin: 对ES进行各种操作,如查询、删除、浏览索引等。
1.安装head插件
进入到节点elasticsearch-node1/bin路径,并安装插件[先安装nodejs]

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start

在ES配置中增加跨站支持

http.cors.enabled: true
http.cors.allow-origin: "*"

让我们看下es页面吧~~
打开head浏览,浏览器输入http://127.0.0.1:9100/,如图,

每个小方块就是索引分片,可以看到每个索引被分成几个分片,每个分片还有它的备份分片,然后存储在三个节点上。粗框的是主分片,细框的是备份分片。

四、基本使用
现在我们来添加一个索引记录吧~
1.查看集群信息

Linux:
curl 'http://localhost:9200/'
Win:
curl localhost:9200/

2.查询集群的健康状态

Linux:
curl 'http://localhost:9200/_cat/health?v'
Win:
curl localhost:9200/_cat/health?v

3.查询结点的列表

Linux:
curl 'http://localhost:9200/_cat/nodes?v'
Win:
curl localhost:9200/_cat/nodes?v

4.查看所有的索引:

Linux:
curl 'http://localhost:9200/_cat/indices?v'
Win:
curl localhost:9200/_cat/indices?v

5.创建索引:

Linux:
curl -XPUT 'http://localhost:9200/customer?pretty'
Win:
curl -XPUT localhost:9200/customer?pretty

6.设置类型type,\”,斜杠加双引号

Linux:
curl -H "Content-Type: application/json" -XPUT 'http://localhost:9200/customer/external/1?pretty' -d "{\"name\":\"Fred\"}"
Win:
curl -H "Content-Type: application/json" -XPUT localhost:9200/customer/external/1?pretty -d "{\"name\":\"Fred\"}"

7.查询:

Linux:
curl -XGET 'http://localhost:9200/customer/external/1?pretty'
Win:
curl -XGET localhost:9200/customer/external/1?pretty

8.删除索引:

Linux:
curl -XDELETE 'http://localhost:9200/customer?pretty'
Win:
curl -XDELETE localhost:9200/customer?pretty

2.我们可以在页面上通过JSON添加
(1)点击 复合查询[+] ,我们可以在 customer 索引 (相当于数据库名)的 external 类型(相当于表名)下新增一个id为1的人的信息。
点击下方的 提交请求 按钮,页面右方有回馈信息,“created”代表是否为新建。添加成功。

点击 浏览数据 ,在左侧 索引 下选择 megacorp,如图,

可以看到,一条id为2的记录被添加了。
(2)下面我们修改id为2 的人的年龄为15,把about 信息去掉,并且加一项兴趣。

提交后,右侧有反馈信息,“created”为 false,因为我们这次不是新建而是修改。

返回浏览数据,id为2 的记录,年龄、兴趣等均已发生变化。

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在NoSQL分类目录。将固定链接加入收藏夹。