搜索架构引擎、方案与细节

来源:互联网 发布:java语言艺术与科学 编辑:程序博客网 时间:2024/05/21 21:35
搜索架构引擎、方案与细节

参考
搜索架构

      文字很多,有宏观,有细节,对于大部分不是专门研究搜索引擎的同学,记住以下几点即可:
(1)全网搜索引擎系统由spider,search&index,rank三个子系统构成
(2)站内搜索引擎与全网搜索引擎的差异在于,少了一个spider子系统
(3)spider和search&index系统是两个工程系统,rank系统的优化却需要长时间的调优和积累
(4)正排索引(forwardindex)是由网页url_id快速找到分词后网页内容list<item>的过程
(5)倒排索引(invertedindex)是由分词item快速寻找包含这个分词的网页list<url_id>的过程
(6)用户检索的过程,是先分词,再找到每个item对应的list<url_id>,最后进行集合求交集的过程
(7)有序集合求交集的方法有
        a)二重for循环法,时间复杂度O(n*n)
        b)拉链法,时间复杂度O(n)
        c)水平分桶,多线程并行
        d)bitmap,大大提高运算并行度,时间复杂度O(n)
        e)跳表,时间复杂度为O(log(n))

      自研搜索的话,历史数据怎么迁移到新的架构上。产生数据的业务服务是否要重构?工程上要考虑哪些方面和流程?

(1)数据初始化,需要重建索引
(2)为了保证数据一致性,索引紧密性,也需要定期重建索引
(3)搜索的接口、架构变化了,调用需要升级

0 0
原创粉丝点击