目录
二、可视化界面(elasticserach-head)插件安装
九、整合SpringBoot,基于 Java API Client
简介
-
ELK 是指
Elasticsearch
、Logstash
、Kibana
三大开源框架。-
Elasticsearch
是一个基于Lucene
、分布式、Restful 交互方式的近实时搜索平台框架,简称 ES。 -
Logstash
是 ELK 的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同的目的地(文件/MQ/redis/elasticsearch/kafka等)。 -
Kibana
可以将 ES 的数据通过友好的页面展示出来,提供实时分析的功能。
-
一、ElasticSearch安装
-
解压目录:
-
bin:启动文件;
-
config:配置文件;
-
log4g2:日志的配置;
-
jvm.options:java虚拟机的配置,运行内存的修改;
-
elasticsearch.yml:es的配置文件,默认端口9200;
-
-
lib:依赖jar包;
-
modules:功能模块;
-
plugins:相关的插件;
-
-
启动服务:
-
说明:由于
ES8
默认开启了ssl
认证,所以无法访问9200
端口; -
问题解决:进入
elasticsearch.yml
文件-
修改
xpack.security.enabled: false
,默认为 true; -
新增
ingest.geoip.downloader.enabled: false
,关闭定位的配置(有报错);
-
-
-
启动:elasticsearch.bat;
-
访问:http://127.0.0.1:9200,页面显示JSON字符串如下:
{ "name" : "LAPTOP-3G****8O", "cluster_name" : "elasticsearch", "cluster_uuid" : "pepFhZOUTGOlEvKxBEAu9A", "version" : { "number" : "8.4.0", "build_flavor" : "default", "build_type" : "zip", "build_hash" : "f56126089ca4db89b631901ad7cce0a8e10e2fe5", "build_date" : "2022-08-19T19:23:42.954591481Z", "build_snapshot" : false, "lucene_version" : "9.3.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" }
-
二、可视化界面(elasticserach-head)插件安装
-
安装npm、node.js环境,因为这个插件是一个web项目,需要npm编译;
-
编译启动:
git clone git://github.com/mobz/elasticsearch-head.git cd elasticsearch-head npm install npm run start
-
跨域问题:不同的端口之间互相访问,如此处的9100端口访问9200端口,访问不到,即跨域。
-
解决:修改
elasticserach.yml
,注意:配置文件中不能存在中文,否则报错!# 增加新的参数,head插件可以访问es,跨域访问一定要配置 http.cors.enabled: true http.cors.allow-origin: "*"
-
重新启动es及es-head:访问9100端口,并连接9200的es服务器;此时显示为健康状态;
-
菜单介绍:
-
概览:es服务器的基本情况;
-
索引:每个索引相当于一个数据库,内部存储的东西类似一张张的数据表;
-
数据浏览:查看索引中的内容;
-
查询:基本查询/复合查询(此处使用
Kibana
做查询);
-
三、Kibana的安装
-
下载:注意要和 ES 的版本一致!同时也是一个web项目,需要安装 npm 环境;
-
编译启动:解压缩后,执行 bin 目录下的
kibana.bat
文件,启动Kibana; -
汉化:修改配置文件 config 目录下的
kibana.yml
,修改i18n.local: "zh-CN"
,默认值为"en"
;
四、ES 核心概念
1、索引;
2、字段类型(mapping);
3、文档(documents);
4、分片(倒排索引);
-
elasticsearch是面向文档、关系行数据库和 elasticsearch 客观的对比;数据都是JSON格式。
Relational DB ElasticSearch 数据库(database) 索引(indices) 表(table) 类型(types) 行(row) 文档(documents) 字段(column) 字段(fields) -
物理设计:es在后台将每个索引划分成多个分片,每个分片可以在集群中的不同服务器间迁移
-
倒排索引:es使用的是倒排索引结构,采用 Lucene 倒排索引作为底层。这种结构适用于快速的全文搜索,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表;
-
在elasticsearch中,索引被分为多个分片,每份分片是一个Lucene的索引。所以一个elasticsearch索引是由多个Lucene索引组成的。
五、IK分词器
-
什么是IK分词器?
-
分词:把一段中文或字符串划分成一个个的关键字,搜索的时候会将输入的信息进行分词,去和数据库或索引库中的分词信息进行匹配。
-
IK分词器:中文分词是将每一个汉字看成一个词,这时就需要安装IK分词器去解决这个问题。
-
IK分词器提供了两个算法:
-