PassJava (佳必过) 项目全套学习教程连载中,关注公众号悟空聊架构第一时间获取。

文档在线地址: www.passjava.cn

ElastiscSearch 系列文章的内容如下:

image.png

前言 项目中我们总是用 Kibana 界面来搜索测试或生产环境下的日志,来看下有没有异常信息。Kibana 就是 我们常说的 ELK 中的 K。

Kibana 界面如下图所示:

二、ES 基本概念

2.1 Index ( 索引 )

动词:相当于 Mysql 中的 insert

名词:相当于 Mysql 中的 database

与 mysql 的对比

序号 Mysql Elasticsearch
1 Mysql 服务 ES 集群服务
2 数据库 Database 索引 Index
3 表 Table 类型 Type
4 记录 Records ( 一行行记录 ) 文档 Document ( JSON 格式 )

2.2 倒排索引

假如数据库有如下电影记录:

1-大话西游

2-大话西游外传

3-解析大话西游

4-西游降魔外传

5-梦幻西游独家解析

分词:将整句分拆为单词

序号 保存到 ES 的词 对应的电影记录序号
A 西游 1,2, 3,4, 5
B 大话 1,2, 3
C 外传 2,4, 5
D 解析 3,5
E 降魔 4
F 梦幻 5
G 独家 5

检索:独家大话西游

独家大话西游 解析拆分成 独家大话西游

ES 中 A、B、G 记录 都有这三个词的其中一种, 所以 1,2, 3,4, 5 号记录都有相关的词被命中。

1 号记录命中 2 次, A、B 中都有 ( 命中 2 次 ) ,而且 1 号记录有 2 个词,相关性得分:2 次/2 个词=1

2 号记录命中 2 个词 A、B 中的都有 ( 命中 2 次 ) ,而且 2 号记录有 2 个词,相关性得分:2 次/3 个词= 0.67

3 号记录命中 2 个词 A、B 中的都有 ( 命中 2 次 ) ,而且 3 号记录有 2 个词,相关性得分:2 次/3 个词= 0.67

4 号记录命中 2 个词 A 中有 ( 命中 1 次 ) ,而且 4 号记录有 3 个词,相关性得分:1 次/3 个词= 0.33

5 号记录命中 2 个词 A 中有 ( 命中 2 次 ) ,而且 4 号记录有 4 个词,相关性得分:2 次/4 个词= 0.5

所以检索出来的记录顺序如下:

​ 1-大话西游 ( 想关性得分:1 )

​ 2-大话西游外传 ( 想关性得分:0.67 )

​ 3-解析大话西游 ( 想关性得分:0.67 )

​ 5-梦幻西游独家解析 ( 想关性得分:0.5 )

​ 4-西游降魔 ( 想关性得分:0.33 )

作者简介:8 年互联网职场老兵|全栈工程师|90 后超级奶爸|开源践行者|公众号万粉原创号主。蓝桥签约作者,著有《JVM 性能调优实战》专栏,手写了一套 7 万字 SpringCloud 实战总结和 3 万字分布式算法总结。公众号「悟空聊架构」,免费获取资料学习。

个人网站:www.passjava.cn