1,什么是Elasticsearch
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
ES与数据库相关基本概念对比:
2,什么是倒排索引
在学习ES中我们知道,在新增文档(document)之前我们会进行创建mapping(类型结构)信息,在mapping信息中我们指定了类型中字段的各种属性,指定了怎样的分词方式(analyzer)、指定了是否另外进行存储(store),是否创建索引(index),字段类型(type)等信息。
然后在我们新增文档时,es会根据创建的mapping对新增的数据进行处理,其中比较重要的就是将文档信息进行维护到倒排索引表。下图表示了一个文档信息与倒排索引表的表格对应关系:
我们在创建mapping时,我们指定了对 title、content字段进行分词操作。当我们新增第一条数据后,系统会对title以及content进行分词,分词后的每个词典单独为倒排索引表中的一行记录,并且记录了该词典所出现在索引中的id,以及出现的字段位置(title\content)。然后当我们进行了搜索后,es将我们搜索的词语进行分词后然后在倒排索引表中进行匹配,匹配上之后直接根据匹配得记录中的索引表id进行直接查询返回。如果没有倒排索引表就好比数据中操作,只能在索引中逐行进行扫描,可想而知,倒排索引表的方式极大的提高了检索的效率。
ps:与es相似的框架还有 solr。数据库中like不走索引。
3,linux下安装Elasticsearch 以及 kibana
环境:linux:centos 7,es:6.8.0,kibana 6.8.1
3.1:根据之前安装人员介绍避免操作权限问题,在Linux中我们为es单独创建一个操作用户。
使用命令 useradd、以及设置密码 passwd命令
3.2:切换到 Elastic用户下 上传 es和kibana的安装包,并进行重命名及解压操作
上传可以使用rz命令,如果没有则使用其他工具上传;
解压以及重命名命令:
tar vxf elasticsearch-6.8.0.tar.gzmv elasticsearch-6.8.0 elasticsearch
3.3:修改配置文件
1,可选,修改es初始化以及最大内存(默认1G)jvm.options
2,修改es数据文件存放位置,以及log生成位置、网络ip(config/elasticsearch.yml)
其中network.host 表示 所有ip都可以进行连接。
3.4,进行启动
在elasticsearch/bin/目录下 使用./elasticsearch 进行前台启动。在启动过程中我们可以看到如下错误:
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
其大致表示文件权限问题;
3.5,处理问题:
切换到root账户下 修改文件vim /etc/security/limits.conf;G 命令跳至末尾添加
* soft nofile 65536
* hard nofile 131072
* soft noroc 4096
* hard noroc 4096
设置文件权限,* 表示所有用户;
处理问题2:
修改文件 vim /etc/sysctl.conf 添加 vm.max_map_count=262144
保存后执行命令 sysctl –p
执行后需要重新登录客户端连接;
重新启动后成功。 说明:启动完成后如果 ctrl+c 会吧es停掉,如果需要可以 使用 ./elasticsearch –d 进行后台启动;
3.6,重新启动
访问ip(linux服务器ip)以及默认端口 9200 出现如下显示则表示正常。(如果ip访问不通,有可能为防火墙问题)
3.7,kinaba安装 解压 配置
解压 tar vxf kibana-xxxxxx.tar.gz
修改目录名
mv kibana-6.8.9-linux_64 kibana
3.8,修改kibana配置文件
修改其config下配置文件 kibana.yml 中 server.host:”0.0.0.0”,以及尾部语言 en为zh-CN;
3.9,启动kibana
在 kibana/bin 目录下 ./kibana 则可以进行启动。
启动成功后访问 http://linuxip:5601 则可以正常打开欢迎页面。
ps(如果kibana启动失败,则可以使用head插件删除所有kibana的索引重新启动;linux解压命令:.gz 使用 tar vxf ;zip 使用unzip 解压;)