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
相关推荐
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。