Elasticsearch最新版本2.20特性及如何安装
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch最新版本2.20特性及如何安装相关的知识,希望对你有一定的参考价值。
版本选择:Elasticsearch最新版本2.20
Elasticsearch的更新速度实在太快了,16年2月2日更新到了2.2版本,首先看一下这个版本增加了哪些新的特性。首先是基于Lucene 5.4.1,修复了Elasticsearch 2.1.2和Elasticsearch 1.7.5版本中存在的很多bug,同时Elasticsearch 2.2.0增加了两个很棒的新功能:查询分析器和增强地理位置字段。这个版本增加了更加严格的安全性和修复了2.1的一个重大bug,就是在分片恢复的时候会非常缓慢。以及许多其他的错误修复和改进。官方鼓励所有用户升级到此版本。
分析器(Profile API)
利用分析器可以得到查询的详细分析信息,它可以让你了解和调试查询性能。查询的每一部分都独立的记录了统计时间,如多长时间重写查询,找到匹配的文档以及他们的得分情况。这个当查询慢的时候就不需要进行猜测为什么这么慢:只要设置profile这个参数为true,你就可以得到最直接的深入的查询分析。
增强地理位置字段
地理位置字段在2.20版本中几乎进行了从写,它利用一个新的紧凑型数据结构存储在Lucene的索引中,可以增加50%的入库效率, 20-50%的查询效率,一半的存储空间和内存的占用以及更简单的映射参数。
对插件和脚本进行更严格的安全性检查
作为安全增强的一部分,Groovy和Lucene的表达式脚本语言已经移出了核心层,现在把他们作为默认的分布式模块的插件。这样的调整可以控制这些模块的权限,已减少黑客的攻击,Elasticsearch的核心模块在未来将会更多的进行模块化处理。脚本语言,现在预定义提供一个白名单列表,这些脚本不能读写文件,不能打开远程的连接。默认情况下,都不准许插件有特殊权限,否则必须事先声明这些权限。同时在插件安装时将会被警告有特殊权限的要求,这个时候你可以根据需要确认是否移除这些插件。
本文由赛克蓝德(secisland)原创,转载请标明作者和出处。
安装
Elasticsearch安装至少需要Java 7的支持。最新的版本建议使用Oracle的JDK版本1.8.0_72。如需了解Java的情况,可以到oracle的官网找相关的资料。在你安装Elasticsearch前,请检查您的Java版本运行:
java -version
当我们设置好Java后,我们可以下载最新的版本。下载地址:https://www.elastic.co/downloads/past-releases/elasticsearch-2-2-0。
下载完成后直接解压。然后到cd elasticsearch-2.2.0/bin目录。
在windows下执行elasticsearch.bat,在linux下运行./elasticsearch。
如果一切顺利的话,你应该看到一堆像下面这样的信息:
[2016-02-03 16:53:31,122][INFO ][node ] [Rintrah] version[2.2.0], pid[6840], build[8ff36d1/2016-01-27T13:32:39Z] [2016-02-03 16:53:31,122][INFO ][node ] [Rintrah] initializing ... [2016-02-03 16:53:31,668][INFO ][plugins ] [Rintrah] modules [lang-groovy, lang-expression], plugins [], sites [] [2016-02-03 16:53:31,684][INFO ][env ] [Rintrah] using [1] data paths, mounts [[work (D:)]], net usable_space [67.2gb], net total_space [99.9gb], spins? [unknown], types [NTFS] [2016-02-03 16:53:31,684][INFO ][env ] [Rintrah] heap size [910.5mb], compressed ordinary object pointers [true] [2016-02-03 16:53:33,637][INFO ][node ] [Rintrah] initialized [2016-02-03 16:53:33,637][INFO ][node ] [Rintrah] starting ... [2016-02-03 16:53:33,918][INFO ][transport ] [Rintrah] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300} [2016-02-03 16:53:33,934][INFO ][discovery ] [Rintrah] elasticsearch/1oo5dtelT8ax-3LmnTrs8g [2016-02-03 16:53:37,982][INFO ][cluster.service ] [Rintrah] new_master {Rintrah}{1oo5dtelT8ax-3LmnTrs8g}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received) [2016-02-03 16:53:40,363][INFO ][gateway ] [Rintrah] recovered [0] indices into cluster_state [2016-02-03 16:53:40,567][INFO ][http ] [Rintrah] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200} [2016-02-03 16:53:40,567][INFO ][node ] [Rintrah] started
这样我们就已经启动了Elasticsearch,当然我们也可以在启动的时候修改集群的名称和节点的名称。例如:
./elasticsearch --cluster.name my_cluster_name --node.name my_node_name
默认情况下,Elasticsearch使用9200端口提供的REST API。该端口是可配置的。
在本机访问http://127.0.0.1:9200/
将会得到一下内容:
{ "name" : "Rintrah", "cluster_name" : "elasticsearch", "version" : { "number" : "2.2.0", "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe", "build_timestamp" : "2016-01-27T13:32:39Z", "build_snapshot" : false, "lucene_version" : "5.4.1" }, "tagline" : "You Know, for Search" }
现在,我们有我们的节点(和集群)将争取的运行,下一步就是要了解如何进行使用。Elasticsearch提供了非常全面和强大的REST API,通过这些API,我们可以了解集群的信息。这些API可以做如下事情:
1、检查群集,节点和索引的情况,状态和统计
2、管理群集、节点和索引数据和文档数据
3、执行CRUD(创建,读取,更新和删除)操作,可以对索引进行操作
4、执行高级搜索操作如分页、排序、过滤、脚本、聚合及其他操作。
赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。
以上是关于Elasticsearch最新版本2.20特性及如何安装的主要内容,如果未能解决你的问题,请参考以下文章
开发者的福音,Spring Data ElasticSearch 3.2版本发布,新特性说明!
SpingBoot:整合Elasticsearch7.2.0