Elasticsearch 学习

搜索引擎式数据库

一、生活中的数据

1.生活中的数据分类

1)结构化数据

行数据,以二维表的形式展示的数据

2)非结构化数据

没有具体结构,视频,文本,音乐文件

3)半结构化数据

xml表格办公软件,HTML

2.搜索的种类

1)结构化数据搜索

结构化数据有固定结构,我们会给他建立关系,生成二维表查询

2)非结构化数据搜索

1.顺序扫描
2.全文搜索

二、Elasticsearch介绍

1.什么Elasticsearch?

是一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索搜索、支持分布式可实现高可用、提供API接口,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。

Elasticsearch是基于lucene开发而来的

#Elasticsearch不能完全代替数据库

2.ES和数据库结构对比

mysql ES
库(database) 索引(index)
表(table) 类型(type)
列(字段)
真实数据行 文档(doc)

3.ES原理

1.存储数据时进行全文检索
2.全文检索后建立倒排索引

4.全文检索

将一个数据的内容转化拆分
	1.分词
	2.找到关键词
	3.搜索索引
	4.匹配,命中,计算命中率
	5.根据命中率进行排序

5.倒排索引

java 是世界上最好的语言
php 是世界上最好的语言
python 是世界上最好的语言
分词后的值(词条) 文档1 文档2 文档3
java 命中
命中 命中 命中
世界上 命中 命中 命中
最好的 命中 命中 命中
语言 命中 命中 命中
php 命中
python 命中

6.倒排索引术语

1.词条:索引最小的存储单位,拆分一组词之后,每一个字或者词
2.词典:词条存储的地方,一般在内存中

3.倒排表:记录多个词命中的次数和顺序
4.倒排文件:存储倒排表的地方,一般在磁盘中

倒排索引介绍:https://www.cnblogs.com/ajianbeyourself/p/11280247.html

7.ES功能

1.分布式存储
2.全文搜索,结构化检索,数据分析
	全文搜索:select * from table;
	结构化检索:select * from table where id > 1;
	数据分析:select count(*) from table;

8.使用场景

1.大量数据存储
2.搜索数据
3.分析数据(ELK)
4.搜索高亮显示

9.ES特点

1.可以部署单点或者集群
2.高性能
3.支持分布式
4.不需要会java
5.功能丰富
6.部署简单
posted @ 2020-08-18 18:32  JoJoblog  阅读(136)  评论(0)    收藏  举报