- Elastic 概述
Elastic官网:免费且开放的搜索:Elasticsearch、ELK 和 Kibana 的开发者 | Elastic
Elastic有一条完整的产品线:Elasticsearch、Kibana、Logstash等,前面说的三个就是大家常说的ELK技术栈。
Logstash 是动态数据收集管道,拥有可扩展的插件生态系统。也就是数据的收集,处理和储存。
Elasticsearch 是一个基于 JSON 的分布式搜索和分析引擎。也就是数据的检索和分析。
Kibana 可视化 Elastic Stack 的窗户(工具)。探索数据并管理堆栈。也就是数据的可视化
- ElasticSearch介绍
- 什么时候ElasticSearch
ElasticSearch是一个基于Lucene的搜索服务器,提供了一个分布式的全文搜索引擎。
Elasticsearch是用Java开发的,基于RESTful web接口,一个开源项目。
Elasticsearch是当前流行的企业级搜索引擎,能够达到实时搜索,且稳定,可靠,快速。
- 下载
- 最新版本下载:下载 Elastic 产品 | Elastic
- 历史版本下载
Past Releases of Elastic Stack Software | Elastic
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
- 安装
- 解压即可
- ElasticSearch使用
- 启动
- 确定启动文件,bin目录下elasticsearch.bat命令,是用于启动elasticsearch的
- 步骤1:启动,双击启动程序
- 启动成功后,绑定的端口
- 9300:集群节点间通讯接口
- 9200:客户端访问接口
- 步骤2:访问,http://localhost:9200/
- 无法启动
错误1:关闭xpack
- 黑窗口闪烁后关闭
- 修改config\ elasticsearch.yml文件,添加如下内容
xpack.ml.enabled: false
- ElasticSearch常见配置
- JVM参数
- Elasticsearch基于Lucene的,而Lucene底层是java实现,学习过程中,建议将jvm参数修改小一些。
- 修改 config/jvm.options,
- 修改绑定IP(可选)
- 默认只允许本机访问
- 修改为0.0.0.0后则可以远程访问
network.host: 0.0.0.0
- 启动elasticsearch异常(黑窗口一闪关闭)
- 修改JDK配置
- 再次访问
- Kibana介绍
- 什么是Kibana
Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。
而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习Elasticsearch的语法。
- Kibana下载
- 下载历史版本:
https://www.elastic.co/cn/downloads/past-releases#kibana
- Kibana安装
- 解压zip即可
- Kibana使用
- 启动
- 双击 /bin/kibana.bat 进行启动
- 启动成功
- 访问
http://localhost:5601
- 控制台
- 点击左侧菜单“Dev Tools”就可以访问 ElasticSearch的控制台
- 基本使用
- 常见错误
- 启动错误1:提示配置xpack.reporting.encryptionKey
- 启动错误2:提示配置xpack.security.encryptionKey
- 修改 kibana.yml文件,添加如下内容
# xpack.reporting.encryptionKey: "任意字符"
xpack.reporting.encryptionKey: "liangtong"
# xpack.security.encryptionKey: "32长度随机字符串"
xpack.security.encryptionKey: "afb73042ba0411ebb4aa54ee7547b0a2"
- 中文分词器
- 分词与分词器
- 分词 Analysis:对文本进行分析,将全文本转换一系列单词的过程。
- 分词器Analyzer :分词Analysis通过分词器Analyzer实现的。
- 默认es不会对中文进行分词
POST _analyze
{
"text": ["我是中国人"]
}
- 使用ik_max_word 进行分词
POST _analyze
{
"analyzer": "ik_max_word",
"text": ["我是中国人"]
}
- 安装IK分词器(支持中文分词)
- IK分词器提供了源代码(maven项目),通过打包生产zip文件
Releases · medcl/elasticsearch-analysis-ik · GitHub
- 使用Kibana进行测试
POST _analyze
{
"analyzer": "ik_max_word",
"text": ["我是中国人"]
}
- 测试结果
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中国人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
},
{
"token": "中国",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 3
},
{
"token": "国人",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 4
}
]
}
- Kibana常见配置
- 整合Elasticsearch(可选)
- 通过 config/kibana.yml文件,可以修改elasticsearch的服务地址
elasticsearch.url: "http://localhost:9200"
- head服务(可选)
- 基本配置
- 步骤6:安装和启动head服务(查看elasticsearch索引工具)
- 访问head服务,查阅以后索引信息
http://localhost:8084/head/index.html
- 使用head进行分词测试
- 跨域问题:elasticsearch支持跨域
- 在elasticsearch的config目录下,修改elasticsearch.yml文件,添加跨域内容
#Cross domain
http.cors.enabled: true
http.cors.allow-origin: "*"
- 如果没有配置跨域,不能访问