Elasticsearch 6 新特性

5.1索引

索引(index)是ElasticSearch存放具体数据的地方,是一类具有相似特征的文档的集合。ElasticSearch中索引的概念具有不同意思,这里的索引相当于关系数据库中的一个数据库实例。在ElasticSearch中索引还可以作为动词,表示对数据进行索引操作。

5.2类型

在6.0之前的版本,一个ElasticSearch索引中,可以有多个类型;从6.0版本开始,,一个ElasticSearch索引中,只有1个类型。一个类型是索引的一个逻辑上的分类,通常具有一组相同字段的文档组成。ElasticSearch的类型概念相当于关系数据库的数据表。

5.3文档

文档是ElasticSearch可被索引的基础逻辑单元,相当于关系数据库中数据表的一行数据。ElasticSearch的文档具有JSON格式,由多个字段组成,字段相当于关系数据库中列的概念。

5.4对比

ElasticSearchRDBMS

索引(index)数据库(database)

类型(type)表(table)

文档(document)行(row)

字段(field)列(column)

映射(mapping)表结构(schema)

全文索引索引

查询DSLSQL

GETselect

PUT/POSTupdate

DELETEdelete

5.5分片

当数据量较大时,索引的存储空间需求超出单个节点磁盘容量的限制,或者出现单个节点处理速度较慢。为了解决这些问题,ElasticSearch将索引中的数据进行切分成多个分片(shard),每个分片存储这个索引的一部分数据,分布在不同节点上。当需要查询索引时,ElasticSearch将查询发送到每个相关分片,之后将查询结果合并,这个过程对ElasticSearch应用来说是透明的,用户感知不到分片的存在。

一个索引的分片一定指定,不再修改。

5.6副本

其实,分片全称是主分片,简称为分片。主分片是相对于副本来说的,副本是对主分片的一个或多个复制版本(或称拷贝),这些复制版本(拷贝)可以称为复制分片,可以直接称之为副本。当主分片丢失时,集群可以将一个副本升级为新的主分片。

curl-L-Ohttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz

tar-xvfelasticsearch-6.2.3.tar.gz

cdelasticsearch-6.2.3/bin

./elasticsearch-d

2.安装head插件

head插件Github地址:https://github.com/mobz/elasticsearch-head

新版elasticsearch已经不支持直接在plugins里运行插件了

进入elasticsearch的安装目录,执行如下命令

gitclonegit://github.com/mobz/elasticsearch-head.git

cdelasticsearch-head

npminstall

npmrunstart

1

2

3

4

然后打开http://localhost:9100/访问插件

由于head插件监听的端口是9100,而elasticsearch的REST接口的端口是9200,因此需要设置elasticsearch允许跨域访问,才能使用head插件,编辑elasticsearch安装目录下的config目录下的elasticsearch.yml文件,添加如下2行配置:

http.cors.enabled:true

http.cors.allow-origin:"*"

安装elasticsearch-sql插件

Github地址:https://github.com/NLPchina/elasticsearch-sql

elasticsearch-sql插件可以方便我们使用SQL语言来对elasticsearch进行查询

进入elasticsearch的安装目录,执行如下命令:

./bin/elasticsearch-plugininstallhttps://github.com/NLPchina/elasticsearch-sql/releases/download/6.2.3.0/elasticsearch-sql-6.2.3.0.zip

curl-L-Ohttps://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip

unzipes-sql-site-standalone.zip

cdsite-server

npminstallexpress--save

nodenode-server.js

1

2

3

4

5

6

elasticsearch-sql的默认端口是8080,可以在site-server/site_configuration.json文件中进行修改

然后打开http://localhost:8080/访问插件

注意修改右上角本地elasticsearch的地址,sql脚本不需要以分号“;”结尾,如果一个index有多个type,表名用indexName/typeName表示

1.下载nodejs我放在/usr/shupf/java目录下

wgethttps://nodejs.org/dist/v8.11.1/node-v8.11.1-linux-x64.tar.xz

执行以下命令设置全局有效

2.ln-s/usr/shupf/java/node-v8.11.1-linux-x64/bin/npm/usr/local/bin/

ln-s/usr/shupf/java/node-v8.11.1-linux-x64/bin/node/usr/local/bin/

3.下载head插件,上github搜索elasticsearch-head,复制下载地址

wgethttps://github.com/mobz/elasticsearch-head/archive/master.zip

unzipmaster.zip解压

4.进入elasticsearch-head-master文件夹,执行npminstall

5.启动head插件:npmrunstart

相关推荐