简介
elasticsearch是一款非常强大的开源搜索引擎,支持Restful风格,可以帮助我们从海量的数据中快速找到用户所需要的内容。是当前最流的开源企业级搜索引擎,能够达到近实时搜索、稳定、可靠、快速、安装使用方便。
elasticsearch结合kibana、Logstash、Beats(即elastic stack,简写:ELK)。被广泛应用在日志数据分析、实时监控等。
elasticsearch是elastic stack的核心,主要负责数据存储、搜索、分析。elasticsearch底层基于lucene技术实现,lucene是一种java语言的搜索类库,距今已近存在二十多年之久。
Elasticsearch 官网:elasticsearch lucene优势
- 易扩展
- 高性能(基于倒排索引)
lucene劣势
- 仅限于java语言
- 学习路线不明确
- 不支持水平扩展
- 无法应对高并发
然而,在2004年,Shay Banon基于lucene进行了二次开发了Compass,又于2010年重写了Compass并重命名为elasticsearch。elasticsearch是面向文档存储的,数据会被序列化成json格式。
elasticsearch优势
- 支持分布式
- 可水平扩展
- 提供Restful接口
- 支持任何语言调用
正向索引与倒排索引
正向索引(Mysql)
一行一行比对,顺序扫描,最终也可以拿到完整的比对结果,但是假设有一百万条、一千万条数据时,性能消耗会非常大、效率很低。
擅长事务操作,可以保证数据安全和一致性
通过索引ID查询数据
倒排索引
- 每条数据是一个文档
- 每个文档按语义分成词条,词条绝对不会重复
- 擅长海量数据苏哦搜、分析、计算
- 通过数据去查询对应的ID
Windows安装
这里包括
elasticsearch
和kibana
官网下载:Download注意:如果你是早期的elasticsearch版本,在8.x之前的话需要自己手动配置JAVA_HOME变量,在8.x之后的版本已经内置了JDK,不再需要用户自己配置了。
- 下载完成后解压缩
elasticsearch
和kibana
到你要解压的位置
elasticsearch
- 配置
elasticsearch
由于默认的内存设置较大,对于开发测试环境来说没有必要,所以需要在ES安装目录下,修改
jvm.options
文件,同时打开elasticsearch.yml,修改配置bootstrap.memory_lock为true,即可完成对堆内存的大小限制为512M
# D:elasticsearch-8.6.2\config\jvm.options
-Xms512m
-Xmx512m
# D:elasticsearch-8.6.2\config\elasticsearch.yml
bootstrap.memory_lock: true
- 启动
elasticsearch
双击执行ES目录下bin中的
elasticsearch.bat
等待执行完毕后,注意查看日志信息中,找到Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):xxxxxx
这段日志,并复制冒号后的信息。
kibana
- 配置
kibana
配置一下图形化界面的语言为中文,默认是英文,看自己的需要进行更改。
kibana默认端口5601,如果你使用的是外网,则将server.host改成外网ip,如果本地访问,则无需修改保持localhost即可;
# D:kibana-8.6.2\config\kibana.yml
i18n.locale: "zh-CN"
- 启动
kibana
双击打开
kibana-8.6.2\bin
目录下的kibana.bat
文件
等待启动完毕后,按住ctrl访问该地址即可;
- 配置
Eeastic
配置
这里把刚刚启动 Elasticsearch 时自动生成注册令牌,也就是让你复制的文本,粘贴到这就行了 。
如果你没有找到或者丢失。只需要在生成新的注册令牌,在 Elasticsearch 安装目录运行以下命令:
bin\elasticsearch-create-enrollment-token.bat --scope kibana
- 等待配置完成 即可进入登陆界面
密码则在启动 Elasticsearch 时的日志中会自动生成,在日志中找到
Password for the elastic user (reset with
bin/elasticsearch-reset-password -u elastic):xxxxxx
复制即可;
用户名默认是:elastic
注意:如果没有注意,或者忘记了elastic密码,可以使用elasticsearch-reset-password -u elastic
命令重置成你想要的密码。
# elasticsearch-users命令使用方法:
bin/elasticsearch-users
([useradd <username>] [-p <password>] [-r <roles>]) |
([list] <username>) |
([passwd <username>] [-p <password>]) |
([roles <username>] [-a <roles>] [-r <roles>]) |
([userdel <username>])
当然,你也可以手动配置用户名和密码,只需要在
kibana.yml
中配置username和password即可;
elasticsearch.username: "your username"
elasticsearch.password: "your password"
- 输入用户名和密码登陆即可
analysis-ik
- 下载 analysis-ik
analysis-ik:Download
-解压缩到elasticsearch
目录下的plugins
目录下
- 重启 elasticsearch 即可