简介

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安装

这里包括 elasticsearchkibana 官网下载:Download注意:如果你是早期的elasticsearch版本,在8.x之前的话需要自己手动配置JAVA_HOME变量,在8.x之后的版本已经内置了JDK,不再需要用户自己配置了。

  • 下载完成后解压缩 elasticsearchkibana到你要解压的位置

kibana新建esmapping kibana 配置elasticsearch_elastic

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新建esmapping kibana 配置elasticsearch_windows_02


kibana新建esmapping kibana 配置elasticsearch_elastic_03

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文件

kibana新建esmapping kibana 配置elasticsearch_elastic_04

等待启动完毕后,按住ctrl访问该地址即可;

kibana新建esmapping kibana 配置elasticsearch_windows_05

  • 配置Eeastic配置

这里把刚刚启动 Elasticsearch 时自动生成注册令牌,也就是让你复制的文本,粘贴到这就行了 。

如果你没有找到或者丢失。只需要在生成新的注册令牌,在 Elasticsearch 安装目录运行以下命令:

bin\elasticsearch-create-enrollment-token.bat --scope kibana

kibana新建esmapping kibana 配置elasticsearch_kibana新建esmapping_06

  • 等待配置完成 即可进入登陆界面

密码则在启动 Elasticsearch 时的日志中会自动生成,在日志中找到Password for the elastic user (reset withbin/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新建esmapping kibana 配置elasticsearch_搜索引擎_07

当然,你也可以手动配置用户名和密码,只需要在 kibana.yml 中配置username和password即可;

elasticsearch.username: "your username"
elasticsearch.password: "your password"
  • 输入用户名和密码登陆即可

kibana新建esmapping kibana 配置elasticsearch_搜索引擎_08

analysis-ik

  • 下载 analysis-ik

analysis-ik:Download

-解压缩到elasticsearch目录下的plugins目录下

kibana新建esmapping kibana 配置elasticsearch_elastic_09

  • 重启 elasticsearch 即可