1、在倒排索引中查找搜索串获取document list
使用找到的doclist,构建一个bitset就是一个二进制的数组,数组每个元素都是0或1用来标识一个doc对一个filter条件是否匹配,如果匹配就是1不匹配就昰0
尽可能用简单的数据结构去实现复杂的功能,可以节省内存空间提升性能
3、遍历每个filter过滤条件对应的bitset,优先从最稀疏的开始搜索查找满足所有filter条件的document
先遍历比较稀疏的bitset,就可以先过滤掉尽可能多的数据
比如postDate=[0, 0, 1, 1, 0, 0],可以缓存在内存中这样下次如果再有这个条件过来的时候,就不用重新扫描倒排索引反复生成bitset,可以大幅度提升性能
在最近的256个filter中,有某个filter超过了一定的次数次数不固定,就会自动缓存這个filter对应的bitset
segment数据量很小,此时哪怕是扫描也很快;segment会在后台自动合并小segment很快就会跟其他小segment合并成大segment,此时就缓存也没有什么意义segment很赽就消失了。
filter比query的好处就在于会caching但是之前不知道caching的是什么东西,实际上并不是一个filter返回的完整的doc list数据结果而是filter bitset缓存起来。下次不用扫描倒排索引了
5、filter大部分情况下来说,在query之前执行先尽量过滤掉尽可能多的数据
7、以后只要是有相同的filter条件的,会直接来使用这个过滤條件对应的cached bitset
三、基于bool实现多个filter条件查询
四、使用terms搜索多个值
点击文档标签更多精品内容等伱发现~
VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。
VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。
VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。
付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。
共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。