ElasticSearch介绍及应用场景

阅读: 评论:0

从早上开始搜索,到晚上估计还没检索完毕,我估计客户会疯掉住院 。
第⼆、不能将搜索词拆分开来,只能搜索名字是“⼿机”开头的⼿机商品,如果想搜出“华为⼿机”或者”⼿机壳“那是搜索不出来的。
第三、快速聚合,实时检索,咱们看京东搜索⼿机那个图,⼀输⼊⼿机,能实时检索出符合搜索内容有多少个商品。如果是数据库存储,实时与数据库交互,数据库早晚的崩的⾯⽬全⾮,估计的跑路了。
So 总体来说⽤数据库来实现搜索,不太靠谱,通常性能也会很差 。
全⽂检索,倒排索引和Lucene
倒排索引
倒排索引也叫反向索引,有反向索引必有正向索引。通俗来讲,正向索引是通过keyvalue,反向索引则是通过valuekey。
倒排列表记录了出现过某个单词的所有⽂档的⽂档列表及单词在该⽂档中出现的位置信息,每条记录称为⼀个倒排项(Posting)。根据倒排列表,即可获知哪些⽂档包含某个单词。
⽐如我们百度⼤话西游,但是⼿抖动输⼊了”⼤话游“,看到返回的结果就是⼤话西游,结果确实是我想要到的内容。
image.png
包括⼤话西游游戏,⼤话西游电影,⼤话西游电视剧等各种信息,倒排索引就是将数据或者⽂档中的关键词拆分构建⼀个⼤表,每个⽂档会记录⽂档编号(DocID),单词在这个⽂档中出现的次数(TF)及单词在⽂档中哪些位置出现过等信息,这样与⼀个⽂档相关的信息被称做倒排索引项(Posting)。所以我们⼀搜索关键词,这些⽂档全部都会查询出来。
全⽂检索
当我们输⼊“⼤话游”,会被拆分成”⼤”,“话游”2个词,⽤2个词去倒排索引⾥⾯去检索数据,检索到的数据返回。整个过程就叫做全⽂检索
image.png
刻字笔如果⽤数据库的思维来做,假如⼀共1000W的记录,按照之前的思路就是扫描1000W次,每次扫描,都需要匹配那个⽂本所有的字符,确认是否包含搜索的关键词,⽽且还不能将搜索词拆解来进⾏检索 。
如果是利⽤倒排索引的话,假设还是1000W,拆分出来的词语,假设有1亿个词语,那么在倒排索引中,就有1亿⾏。我们可能不需要检索1亿次,有可能检索1次或者N+1,就能到我们需要的数据,也有可能是100W次,也有可能是1000W次.
Luc ene
Lucene就是⼀个jar包库,⾥⾯包含了封装好的各种建⽴倒排索引,以及进⾏搜索的代码,包括各种算法,在我们就⽤java开发的时候会⽤到。Elasticsearch的包含那些功能
第⼀、分布式的搜索引擎和数据分析引擎
搜索:百度,⽹站的站内搜索,IT系统的检索
数据分析:
电商⽹站,最近⼀周⼿机商品销量排名前10的商家有哪些;
新闻⽹站,最近1个⽉访问量排名前3的新闻版块是哪些
第⼆、 全⽂检索,结构化检索,数据分析
全⽂检索:我想搜索商品名称包含⼿机的商品,select * from products where product_name like "%⼿机%"
结构化检索:我想搜索商品分类为电⼦数码的商品都有哪些,select * from products where category_id='电⼦数码'
部分匹配、⾃动完成、搜索纠错、搜索推荐
数据分析:我们分析每⼀个商品分类下有多少个商品,select category_id,count(*) from products group by category_id
第三、对海量数据进⾏近实时的处理
分布式:ES⾃动可以将海量数据分散到多台服务器上去存储和检索泡沫仪
海量数据的处理:分布式以后,就可以采⽤⼤量的服务器去存储和检索数据,⾃然⽽然就可以实现海量数据的处理了
近实时:检索个数据要花费1⼩时(这就不要近实时,离线批处理,batch-processing);在秒级别对数据进⾏搜索和分析
跟分布式/海量数据相反的:lucene,单机应⽤,只能在单台服务器上使⽤,最多只能处理单台服务器可以处理的数据量
玻璃钢拍门
Elasticsearch的适⽤场景现浇梁
(1)和百度百科,⼿机,全⽂检索,⾼亮,搜索推荐。
智能浴缸(2)The Guardian(国外新闻⽹站),类似搜狐新闻,⽤户⾏为⽇志(点击,浏览,收藏,评论)+社交⽹络数据(对某某新闻的相关看法),数据分析,给到每篇新闻⽂章的作者,让他知道他的⽂章的公众反馈(好,坏,热门,垃圾,鄙视,崇拜)
(3)Stack Overflow(国外的程序异常讨论论坛),IT问题,程序的报错,提交上去,有⼈会跟你讨论和回答,全⽂检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到⾥⾯去,搜索有没有对应的答案
(4)GitHub(开源代码管理),搜索上千亿⾏代码。
(5)电商⽹站,检索商品。
(6)⽇志数据分析,logstash采集⽇志,ES进⾏复杂的数据分析(ELK技术,elasticsearch+logstash+kibana)
(7)商品价格监控⽹站,⽤户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给⽤户,⽐如说订阅⼿机的监控,如果iphone的⼿机低于3000块钱,就通知我,我就去买
(8)BI系统,商业智能,Business Intelligence。⽐如说有个⼤型商场集团,BI,分析⼀下某某区域最近3年的⽤户消费⾦额的趋势以及⽤户体的组成构成,产出相关的数张报表,**区,最近3年,每年消费⾦额呈现100%的增长,⽽且⽤户体85%是⾼级⽩领,开⼀个新商场。ES执⾏数据分析和挖掘,Kibana进⾏数据可视化国内。
(9)国内:站内搜索(电商,招聘,门户,等等),IT OA系统搜索(OA,CRM,ERP,等等),数据分析(ES热门的⼀个使⽤场景)ElasticSearch的特点
(1)可以作为⼀个⼤型分布式集(数百台服务器)技术,处理PB级数据,服务⼤公司;也可以运⾏在单机上,服务⼩公司
(2)Elasticsearch不是什么新技术,主要是将全⽂检索、数据分析以及分布式技术,合并在了⼀起,才形成了独⼀⽆⼆的ES;lucene(全⽂检索),商⽤的数据分析软件(也是有的),分布式数据库(mycat)
(3)对⽤户⽽⾔,是开箱即⽤的,⾮常简单,作为中⼩型的应⽤,直接3分钟部署⼀下ES,就可以作为⽣产环境的系统来使⽤了,数据量不⼤,操作不是太复杂
(4)数据库的功能⾯对很多领域是不够⽤的(事务,还有各种联机事务型的操作);特殊的功能,⽐如全⽂检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch作为传统数据库的⼀个。
核反应堆的慢化剂
简介
接下来可以看下Windows 环境安装Elasticsearch
⼀步步去更好的学习Elasticsearch

本文发布于:2023-05-25 10:48:25,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/113429.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:搜索   检索   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图