中间件 - 搜索引擎架构细节

搜索引擎架构 + 检索需求方案演进

一、宏观

  1. 全网搜索引擎,三大模块:spider,index,rank
    在这里插入图片描述
  2. spider + index:工程系统,各大搜索引擎比如百度和谷歌,都是差不多的。
  3. rank:业务策略系统,这个不同的搜索引擎不一样。
  4. 搜索结果的好坏,核心在rank

二、实时搜索引擎

架构核心:

  1. 索引分级
  2. dump & merge

实施要点:

  1. 实时定点写
    在这里插入图片描述

  2. 实时分段读
    在这里插入图片描述

  3. 异步导出合并
    在这里插入图片描述

三、微观

  1. 正排索引:url_id快速找到list<item>

  2. 倒排索引:分词item快速找到list<url_id>

  3. 检索过程:先分词,再找item对应的list<url_id>,最后求交集

  4. 有序集合求交集:
    a.二重for循环,时间复杂度O(n^2)
    b. 拉链法,时间复杂度O(n)
    c. 水平分桶,多线程并行
    d. bitmap,大大提高运算并行度,时间复杂度O(n)
    在这里插入图片描述

    e. 调表,时间复杂度O(log(n))

四、满足检索需求

  1. 原始阶段 - LIKE
  2. 初级阶段 - mysql的全文索引
  3. 中级极端 - 开源外置索引,比如ES、Solr、Lucene
  4. 高级阶段 - 自研搜索引擎
    在这里插入图片描述

五、参考

  1. https://blog.csdn.net/qijiqiguai/article/details/78702506
横瓜数据库全文检索中间件全套软件,英文名称HdMap,可让你轻松将自己的数据库文件架构成全文搜索引擎,你无需对自己的数据库文件做任何更改,就可以为数据库文件创建可供编程语言调用的ActiveX DLL全文检索接口,可用于任何与数据库检索有关的查询,例如全文搜索、垂直搜索、海量数据库LIKE式快速查询等。软件主要特点如下: (1)支持目前所有主流数据库(例如Access、SQL_server、Oracle、MySQL、DB2等),这些数据库文件都可以被架构成全文检索,HdMap并且支持异构数据库、多数据库,最多可容纳200个任意类型的数据库,但每个数据库须少于999万条记录。 (2)中间件接口支持目前所有主流编程语言调用(例如PHP、ASP、VB、VC、Delphi、C#等),程序员可在HdMap基础上用几十行代码打造出亿级规模的搜索引擎来。而对于打造堪比百度规模的搜索引擎,你也只缺少分布式通讯模块的编写。 (3)HdMap采用最大右匹配分词切词技术、倒排技术、MD5摘要信息抽取技术、硬盘整理加速技术、中文海量词典查询技术、HTM转换TXT技术、ActiveX DLL中间件技术、实时增量索引技术等。分词速度约为2500万字/分钟,约占99.984%关键词检索时间小于0.001秒。最低PC配置内存2G、主频1G、NTFS文件系统、中高档转速硬盘、WINDOW系列操作系统。 (4)绿色软件解压即可使用,软件使用前先执行Setup.exe以安装system32支持库。 (5)HdMap基础词典已用MD5加密封装,用户可在dic.txt中自由添加新词典,新词被添加到dic.txt后,被检索的几率变大。若不添加新词,也可以被检索到,只是几率稍小些。 (6)若要使用HdMap必须确保网络可以连接。此外不得将本软件用于赢利目的、销售他人、非法用途等,否则将会被追究法律责任。搜索引擎开发及合作,请联系QQ(601069289)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值