ElasticSearch的安装与使用
1 ElasticSearch介绍
1.1.为什么要用ElasticSearch?
当我们访问购物网站的时候,我们可以根据我们随意所想的内容输入关键字就可以查询出相关的内容,这是怎么做到呢?这些随意的数据不可能是根据数据库的字段查询的,那是怎么查询出来的呢,为什么千奇百怪的关键字都可以查询出来呢?
答案就是全文检索服务,ElasticSearch是一个基于Lucene的全文检索服务器,而lucene采用了词元匹配方案。举个例子:北京天安门----Lucene切分词:北京 天安门 等等这些词元,当我们搜索的时候这些词元都可以检索到北京天安门。
1.2.ElasticSearch介绍
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个基于RESTful web接口的分布式全文搜索引擎。ElasticSearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。根据DB-Engines的排名显示,ElasticSearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基Lucene)。
总结:
1、elasticsearch是一个基于Lucene的分布式全文检索服务器。
2、elasticsearch隐藏了Lucene的复杂性,对外提供Restful 接口来操作索引、搜索。
1.3.原理与应用
下图是ElasticSearch的索引结构,右边黑蓝色色部分是原始文档,左边黄色部分是逻辑结构,逻辑结构也是为了更好的去描述ElasticSearch的工作原理及去使用物理结构中的索引文件。
1.3.1倒排索引
正排索引:查字典从第一页开始找,直到找到为止(文档---->关键字)
倒排索引(Inverted index):也常被称为反向索引,倒排索引是从关键字到文档的映射(已知关键字求文档)。
逻辑结构部分是一个倒排索引表,由三部分组成:
1、将搜索的文档最终以Document方式存储起来。
2、将要搜索的文档内容分词,所有不重复的词组成分词列表。
3、每个分词和docment都有关联。
分词列表的特点
1、不重复
2、不搜索的filed不参加分词
3、“的、地、得”语气词不参加分词
2 安装 ElasticSearch
首先下载所需要的软件和压缩包等
链接:https://pan.baidu.com/s/1B0u8RUbyx2-io06q5tK0qQ
提取码:y8ql
2.1 环境要求
1、jdk必须是jdk1.8.0_131以上版本。
2、ElasticSearch 需要至少4096 的线程池和 262144字节以上空间的虚拟内存才能正常启动,所以需要为虚拟机分配至少1.5G以上的内存
3、从5.0开始,ElasticSearch 安全级别提高了,不允许采用root帐号启动
4、Elasticsearch的插件要求至少centos的内核要3.5以上版本
2.2 设置虚拟机内存
把虚拟机内存设置到1.5G以上
2.3 创建用户
1.创建elk 用户组
groupadd elk
2.创建用户admin
useradd admin
passwd admin
3.将admin用户添加到elk组
usermod -G elk admin
5.为用户分配权限
#chown将指定文件的拥有者改为指定的用户或组 -R处理指定目录以及其子目录下的所有文件
chown -R admin:elk /usr/upload
chown -R admin:elk /usr/local
2.3 安装
ES是Java开发的应用,解压即安装:
tar -z