查看“ElasticSearch应用场景”的源代码
←
ElasticSearch应用场景
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV1nF411F75k/?p=2 假设我们要搜索一首诗句内容中带“前”字的古诗 {| class="wikitable" !name !content !author |- |静夜思 |床前明月光,疑是地上霜。举头望明月,低头思故乡。 |李白 |- |望庐山瀑布 |日照香炉生紫烟,遥看瀑布挂前川。飞流直下三千尺,疑是银河落九天。 |李白 |- |…… |…… |…… |} 思考:用传统关系型数据库和ES实现会有什么差别? 如果用像 MySQL 这样的 RDBMS 来存储古诗的话,我们应该会去使用这样的 SQL 去查询:<syntaxhighlight lang="sql"> select name from poems where content like '%前%'; </syntaxhighlight> === 顺序扫描 === 这种我们称为顺序扫描法,需要遍历所有的记录进行匹配。 不但效率低,而且还可能不符合我们搜索时的期望,比如我们在搜索“ABCD”这样的关键词时,可能还希望看到“A”、“AB”、“CD”、“ABC”的搜索结果。 https://www.bilibili.com/video/BV1nF411F75k/?p=3 === 全文检索 === 全文检索是指: * 通过一个程序扫描文本中的每一个单词,针对单词建立索引,并保存该单词在文本中的位置、以及出现的次数 * 用户查询时,通过之前建立好的索引来查询,将索引中单词对应的文本位置、出现的次数返回给用户,因为有了具体文本的位置,所以就可以将具体内容读取出来了 [[文件:ES应用场景1.png|无|缩略图|900x900像素]]搜索原理简单概括可以分为: * 内容爬取,停顿词过滤,比如一些无用的像“的”、“了”之类的语气词/连接词 * 内容分词,提取关键词 * 根据关键词建立倒排索引 * 用户输入关键词进行搜索
返回至
ElasticSearch应用场景
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息