大数据量查询优化

参考博客

参考这两篇博客点这里还有这里

 

个人总结以及反思

里面比较有意思的是索引外置,从而减少去每张表反复查索引,也不受单表数据量的影响性能

 

这里涉及两个概念:正排索引,倒排索引

按照大佬的解释:

正排索引

一篇文章拆分成多个词语,会存储成Map<url,List<detail>>,作用:方便我们通过文章id查询分词

倒排索引

根据词语去查找url,存储Map<detail,List<url>,作用:根据分词来查找拥有这个分词的文章url,根据具体的需求还可以求交集。总的作用是根据特定的业务构造倒排索引

 

搜索引擎对比

外置索引保存在搜索引擎里面,比如Lucene,ES等等

 

引用大佬的原文:

Lucene虽好,潜在的不足是:

(1)Lucene只是一个库,需要自己做服务,自己实现高可用/可扩展/负载均衡等复杂特性;

(2)Lucene只支持Java,如果要支持其他语言,必须得自己做服务;

(3)Lucene不友好,这是很致命的,非常复杂,使用者往往需要深入了解搜索的知识来理解它的工作原理,为了屏蔽其复杂性,还是得自己做服务;



为了改善Lucene的各项不足,解决方案都是“封装一个接口友好的服务,屏蔽底层复杂性”,于是有了ES:

(1)ES是一个以Lucene为内核来实现搜索功能,提供REStful接口的服务;

(2)ES能够支持很大数据量的信息存储,支持很高并发的搜索请求;

(3)ES支持集群,向使用者屏蔽高可用/可扩展/负载均衡等复杂特性;

 

还需要解决一个索引的定量更新

 

这篇博客里面也介绍了,分多个搜索引擎库,一个全量,一个一天,一个是一小时,基本一小时那个一直更新,缓解全量更新时间慢的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值