一、全文检索引擎的介绍

一、全文检索引擎的介绍

  1. -》ELK:ElasticSearch+Logstash+Kibana

    -》用于解决日志收集、日志分析处理、展示的日志分析平台
    -》ES:日志的存储,聚合分析——全文检索引擎
    -》Logstash:日志的收集
    -》Kibana:日志分析展示工具
    
  2. -》生活中的全文检索

    -》查找某些不熟悉的东西,百度一下(网页搜索引擎:百度、搜狗、谷歌)
    	查找:生化武器
    		-》生化武器
    		-》武器
    		-》生化
    		-》生化细菌武器
    -》站内搜索
    	-》电商-淘宝
    	-》新闻-新浪
    	-》工作-拉勾
    -》OA:办公自动化系统
    	-》运营管理
    -》管理工具
    	-》人员管理
    		-》需求:查询所有叫"张三"的人
    			-》常规的返回结果:张三
    			-》全文检索引擎:
    				-》张三
    				-》张三大
    				-》大张三
    				-》张小三
    	-》财务管理
    

    -》全文检索引擎与关系型数据库的应用有什么区别?

    -》可行性:全文检索引擎和关系型数据库都可以实现
    -》性能:
    	-》RDBMS:随着数据量的增加,检索和存储的效率会逐渐降低
    	-》全文检索引擎:在同等的数据量条件下,检索和存储的效率几乎不变
    	-》假设:id,name,age,addr
    		-》从一千万条数据中查询姓名中带有张三的人员信息
    			-》rdbms:
    				-》select * from employee where name like %张三%
    				-》全表扫描,挨个匹配
    				-》假设如果查找的是较长的地址字符串:
    					江苏省南京市玄武区某某街道某某小区某某栋某某层某某号
    				-》不能进行分词检索
    			-》全文检索引擎:倒排索引
    				1-生化危机电影
    				2-生化危机小说
    				3-生化危机海报
    				4-生化危机广告
    				-》将4条数据存储到全文检索引擎中
    					生化	1,2,3,4
    					危机	1,2,3,4
    					电影	1
    					小说	2
    					海报	3
    					广告	4
    				-》假设100万条数据,分词以后有1000万个词条
    				-》搜索:生化电影
    					-》生化:1,2,3,4
    					-》电影:1
    			-》将每个文本进行分词,然后通过索引进行检索的过程就叫做全文检索
    

    -》常见的全文检索引擎

    -》Lucene:就是一个jar包
    	-》优点:
    		-》相对成熟,有很多实际的案例,Apache顶级项目,持续更新开发完善
    		-》只是一个类库,使用相对简单,有足够的定制和优化空间
    		-》经过优化,可以支持10亿+级别的检索
    	-》缺点:
    		-》需要额外的开发工作
    		-》所有的分布式、可靠性都需要自己实现
    		-》数据量大,单台机器无法存放,自己解决大数据量的存储和检索问题
    		-》高性能分布式的索引如何构建?
    		-》分布式存储?备份?数据通信?高可用?
    		
    -》solr:基于Lucene的封装
    	-》优点
    		-》solr拥有强大的用户、开发者社区
    		-》支持多种索引、HTML、json、xml⋯⋯等多种纯文本格式
    		-》solr成熟稳定
    		-》不考虑索引的创建进行搜索,速度更快
    	-》缺点:	
    		-》构建索引时,搜索效率会下降,实时索引搜索效率不高
    	
    -》ES:基于Lucene的封装
    	-》优点:
    		-》分布式的,不需要任何的组件,可零配置实现分布式集群
    		-》完全支持Lucene中的准实时的搜索
    		-》处理多租户,不需要任何特殊的配置
    		-》ES支持备份,节点对等的网络结构,让节点故障更容易解决
    	-》缺点:
    		-》还不够自动化
    		-》只支持json
    	-》对比Lucene:
    		-》自动维护数据分布到多台机器的数据索引,自动将请求分布到对应的节点执行
    		-》自动维护数据的冗余副本
    		-》封装了更多高级的功能
    			-》复杂搜索
    			-》聚合分析
    			-》基于地理位置的搜索⋯⋯
    	-》对比solr
    		-》当对已有数据进行检索,不需要创建索引时,solr更快
    		-》当进行实时的数据索引构建检索时,es的优势更大
    		-》随着数据量的增加,solr的搜索效率会变低,es相对区别不大
    		-》solr不适合准实时的搜索的应用
    		-》solr利用zookeeper实现分布式管理,es通过自带的分布式协调组件来实现
    		-》solr的功能更加强大,es的高级功能大部分需要通过第三方插件来提供
    		-》solr适用于传统的搜索解决方案,es适用于实时的搜索解决方案
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值