eslasticsearch 的优点有哪些?
1.2k

题目描述

假设我要求职,这里我们有一张职位数据表 jobs,我想从中检索一些我想要的工作,一般我会先想好关键词,比如 "舒适办公环境"、“有良好晋升空间 " 等,如果用 MySQL 实现,sql 查询语句如何写?性能如何?

思路点拨

你可能会这样写 SQL:SELECT * FROM jobs WHERE job_desc LIKE %关键词%。这样做,理论上是可以搜到一些数据的,比如和用户输入的关键词完全匹配的就可以,但是假设 jobs 表中很多对工作职位的描述换了个说法,比如 "办公环境舒适”、" 晋升空间良好 " 等,颠倒了词的顺序,LIKE 关键词肯定是匹配不到了。

另外,LIKE 是全表扫描的一个操作,如果你的数据量较小,还好说,但如果你数据量在百万、千万甚至更多的时候,耗时将是不可想象的,更别说还有恼人的分词问题,单单使用 MySQL 是无法解决的。

基于分词后的全文检索,这种情况是 es 的强项,而对于 MySQL 关系型数据库而言完全是灾难因为 es 分词后,每个字都可以利用 FST 高速找到倒排索引的位置,并迅速获取文档 id 列表但是对于 MySQL 检索中间的词只能全表扫(如果不是搜头几个字符)。

我的作业
去发布

登录后即可发布作业,立即

全部作业

数据加载中...

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号