没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
name content author
静夜思 床前明月光,疑是地上霜。举头望明月,低头思故乡。 李白
望庐山瀑
布
日照香炉生紫烟,遥看瀑布挂前川。飞流直下三千尺,疑是银河落九
天。
李白
... ... ...
ElasticSearch7入门与进阶实战
主讲老师:图灵课堂Fox老师
ES版本: v7.17.3
全文检索
数据分类:
结构化数据: 固定格式,有限长度 比如mysql存的数据
非结构化数据:不定长,无固定格式 比如邮件,word文档,日志
半结构化数据: 前两者结合 比如xml,html
搜索分类:
结构化数据搜索: 使用关系型数据库
非结构化数据搜索
顺序扫描
全文检索
设想一个关于搜索的场景,假设我们要搜索一首诗句内容中带“前”字的古诗
思考:用传统关系型数据库和ES 实现会有什么差别?
如果用像 MySQL 这样的 RDBMS 来存储古诗的话,我们应该会去使用这样的 SQL 去查询
这种我们称为顺序扫描法,需要遍历所有的记录进行匹配。不但效率低,而且不符合我们搜索时的期
望,比如我们在搜索“ABCD"这样的关键词时,通常还希望看到"A","AB","CD",“ABC”的搜索结果。
什么是全文检索
全文检索是指:
通过一个程序扫描文本中的每一个单词,针对单词建立索引,并保存该单词在文本中的位置、以及
出现的次数
用户查询时,通过之前建立好的索引来查询,将索引中单词对应的文本位置、出现的次数返回给用
户,因为有了具体文本的位置,所以就可以将具体内容读取出来了
select name from poems where content like "%前%"
图灵课堂Fox
关键词 文章ID
JAVA 1,2
设计模式 1,2
多线程 2
倒排索引(反向索引)
假如,我们有一个站内搜索的功能,通过某个关键词来搜索相关的文章,那么这个关键词可能出现在标
题中,也可能出现在文章内容中,那我们将会在创建或修改文章的时候,建立一个关键词与文章的对应
关系表,这种,我们可以称之为倒排索引。
ElasticSearch简介
ElasticSearch是什么
ElasticSearch(简称ES)是一个分布式、RESTful 风格的搜索和数据分析引擎,是用Java开发并且是当
前最流行的开源的企业级搜索引擎,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。
客户端支持Java、.NET(C#)、PHP、Python、Ruby等多种语言。
官方网站: https://www.elastic.co/
下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
搜索引擎排名:
参考网站:https://db-engines.com/en/ranking/search+engine
起源——Lucene
基于Java语言开发的搜索引擎库类
创建于1999年,2005年成为Apache 顶级开源项目
Lucene具有高性能、易扩展的优点
Lucene的局限性︰
只能基于Java语言开发
类库的接口学习曲线陡峭
原生并不支持水平扩展
图灵课堂Fox
Elasticsearch的诞生
Elasticsearch是构建在Apache Lucene之上的开源分布式搜索引擎。
2004年 Shay Banon 基于Lucene开发了Compass
2010年 Shay Banon重写了Compass,取名Elasticsearch
支持分布式,可水平扩展
降低全文检索的学习曲线,可以被任何编程语言调用
Elasticsearch 与 Lucene 核心库竞争的优势在于:
完美封装了 Lucene 核心库,设计了友好的 Restful-API,开发者无需过多关注底层机制,直接开箱
即用。
分片与副本机制,直接解决了集群下性能与高可用问题。
ElasticSearch版本特性
5.x新特性
Lucene 6.x, 性能提升,默认打分机制从TF-IDF改为BM 25
支持Ingest节点/ Painless Scripting / Completion suggested支持/原生的Java REST客户端
Type标记成deprecated, 支持了Keyword的类型
性能优化
内部引擎移除了避免同一文档并发更新的竞争锁,带来15% - 20%的性能提升
Instant aggregation,支持分片,上聚合的缓存
新增了Profile API
6.x新特性
Lucene 7.x
新功能
跨集群复制(CCR)
索引生命周期管理
SQL的支持
图灵课堂Fox
更友好的的升级及数据迁移
在主要版本之间的迁移更为简化,体验升级
全新的基于操作的数据复制框架,可加快恢复数据
性能优化
有效存储稀疏字段的新方法,降低了存储成本
在索引时进行排序,可加快排序的查询性能
7.x新特性
Lucene 8.0
重大改进-正式废除单个索引下多Type的支持
7.1开始,Security 功能免费使用
ECK - Elasticseach Operator on Kubernetes
新功能
New Cluster coordination
Feature——Complete High Level REST Client
Script Score Query
性能优化
默认的Primary Shard数从5改为1,避免Over Sharding
性能优化, 更快的Top K
8.x新特性
Rest API相比较7.x而言做了比较大的改动(比如彻底删除_type)
默认开启安全配置
存储空间优化:对倒排文件使用新的编码集,对于keyword、match_only_text、text类型字段有
效,有3.5%的空间优化提升,对于新建索引和segment自动生效。
优化geo_point,geo_shape类型的索引(写入)效率:15%的提升。
技术预览版KNN API发布,(K邻近算法),跟推荐系统、自然语言排名相关。
https://www.elastic.co/guide/en/elastic-stack/current/elasticsearch-breaking-changes.html
ElasticSearch vs Solr
Solr 是第一个基于 Lucene 核心库功能完备的搜索引擎产品,诞生远早于 Elasticsearch。
当单纯的对已有数据进行搜索时,Solr更快。
当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。
图灵课堂Fox
剩余63页未读,继续阅读
kjf00
- 粉丝: 1030
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0