浅谈搜索引擎技术原理和架构

本文简要介绍了搜索引擎的基本原理,包括索引、分词和排序。索引通过倒排索引解决大规模数据的搜索效率问题,分词是处理语言单位的关键,特别是汉语分词技术已成熟。排序则根据相关性进行,主要评价指标包括速度、精准性、覆盖率和时效性。搜索引擎面临的挑战包括高并发处理、缓存技术、索引端召回策略和爬虫策略等。此外,讨论了query解析、关键词改写、个性化排序和知识库建立等提高精准性的方法。

浅谈搜索引擎技术原理和架构

搜索引擎是我们非常熟悉的互联网产品,上网都离不开搜索,毫无疑问,在pc端,是多数流量的入口。大家都会说,“有问题,百度一下”,当初百度靠这句广告语,打开了国内很大的市场。

本文只是简要介绍一下总体需要的原理,具体的技术原理,我会在后续的文章中深入介绍。

1.索引
输入一个关键词,就会出现相关的文档。如果这里有三篇文档,给一个关键词,就通过字符串匹配的方法就可以找到包含该关键词的文档,这很简单。那么如果有一百篇呢,同样对这一百篇文章逐个进行搜索即可,现代计算机对于上百篇文章的检索还是可以毫秒级的时间完成的。那么,网络上数以万计乃至上亿的文章,难道也要这样逐个搜索吗。索引就是解决搜索缓慢的方案,也就是说将每篇文章进行处理,对每一个出现的词建索引。每个词对应的列表是包含这个词的文章的列表,这被称为倒排索引。于是输入一个词,只要查找这张表,就能很快把包含这个词的文章给找出来。那如果有多个词呢,比如,在淘宝上搜索“黄色毛衣”,只要把包含“黄色”的商品和包含“毛衣”的商品求个交集。构建倒排索引是搜索引擎的基础。

2.分词
构建倒排索引的单位是词,词代表了语言中最基本的单位。在英文中,可以通过空格对每个词进行分开,而汉语就相对复杂了,不是通过空格分开的了,需要人通过语义进行分开。上面提到了“黄色毛衣”这个query,可以将“黄色”和“毛衣”分成两个基本的语言单位。但是,计算机来进行汉语分词就相对来说比较困难了。好在目前汉语分词技术已经非常成熟了,也有非常成熟的库进行调用,中科院,复旦等科研机构都对汉语分词技术研究得很深入。

3.排序
找出这些文章以后,怎么进行排序,哪篇文章靠前,哪篇文章靠后,也是个问题。我们暂且可以这样来进行排序,按照相关性来,如果搜索的query跟文档的标题一样,这个相关性就相对来说比在正文中出现这些query的文档高。如果词的顺序都一模一样,那相关性就更高了,如果一字不差,不多字也不少字,当然是相关性最高了。

上述几个问题,是搜索的基础。只要解决了这几个问题,稍微花几天功夫,一个计算机系的研究生,就可以把一个简单的搜索引擎构建起来了。笔者画了一下简单的搜索引擎的技术架构图。

一、课程优势本课程有陈敬雷老师的清华大学出版社配套书籍教材《分布式机器学习实战》人工智能科学与技术丛书,新书配合此实战课程结合学习,一静一动,互补高效学习!本课程由互联网一线知名大牛陈敬雷老师全程亲自授课,技术前沿热门,是真正的互联网工业级实战项目。二、课程简介       大数据算法类的系统传统的业务系统有所不同,一个是多了离线计算框架部分,比如Hadoop集群上的数据处理部分、机器学习深度学习的模型训练部分等,另一个区别就是大数据算法类系统追求的是数据驱动、效果驱动,通过AB测试评估的方式,看看新策略是否得到了优化改进。所以在系统架构上,需要考虑到怎么离线计算框架去对接,怎么设计能方便我们快速迭代的优化产品,除了这些,像传统业务系统那些该考虑的也照样需要考虑,比如高性能、高可靠性、高扩展性也都需要考虑进去。这就给架构师非常高的要求,一个是需要对大数据算法充分了解,同时对传统的业务系统架构也非常熟悉。        本节课就对当前几个热门的大数据算法系统架构(推荐系统架构设计、个性化搜索引擎架构设计、用户画像系统架构设计)做一个深度解析!1.个性化推荐算法系统 是一个完整的系统工程,从工程上来讲是由多个子系统有机的组合,比如基于Hadoop数据仓库的推荐集市、ETL数据处理子系统、离线算法、准实时算法、多策略融合算法、缓存处理、搜索引擎部分、二次重排序算法、在线web引擎服务、AB测试效果评估、推荐位管理平台等。如下就是我们要讲的个性化推荐算法系统架构图,请大家仔细欣赏、品味:      这节课我们就对推荐系统的整体架构各个子系统做了详细的讲解,解开个性化推荐算法系统神秘的面纱!2.个性化搜索引擎 个性化推荐是比较类似的,这个架构图包含了各个子系统或模块的协调配合、相互调用关系,从部门的组织架构上来看,目前搜索一般独立成组,有的是在搜索推荐部门里面,实际上比较合理的应该是分配在大数据部门更好一些,因为依托于大数据部门的大数据平台人工智能优势可以使搜索效果再上一个新的台阶。下面我们来详细的讲一下整个架构流程的细节。如下就是我们要讲的个性化搜索架构图,请大家仔细欣赏、品味:这节课我们就对个性化搜索的整体架构各个子系统做了详细的讲解,解开搜索引擎神秘的面纱! 3.大数据用户画像系统 用户画像是一个非常通用普遍使用的系统,从我们的架构图中可以看出,从数据计算时效性上来讲分离线计算实时计算。离线计算一般是每天晚上全量计算所有用户,或者按需把用户数据发生变化的那批用户重新计算。离线计算主要是使用Hive SQL语句处理、Spark数据处理、或者基于机器学习算法来算用户忠诚度模型、用户价值模型、用户心理模型等。实时计算指定的通过Flume实时日志收集用户行为数据传输到Kafka消息队列,让流计算框架Flink/Storm/SparkStreaming等去实时消费处理用户数据,并触发实时计算模型,计算完成后把新增的用户画像数据更新搜索索引。个性化推荐、运营推广需要获取某个或某些用户画像数据的时候直接可以毫秒级别从搜索索引里搜索出结果,快速返回给调用方数据。这是从计算架构大概分了两条线离线处理实时。下面我们从上到下详细看下每个架构模块。如下就是我们要讲的大数据用户画像架构图,请大家仔细欣赏、品味:这节课我们就对大数据用户画像系统的整体架构各个子系统做了详细的讲解,解开用户画像系统神秘的面纱!三、老师介绍陈敬雷  充电了么创始人,CEO兼CTO陈敬雷,北京充电了么科技有限公司创始人,CEO兼CTO,十几年互联网从业经验,曾就职于用友、中软、凡客、乐蜂网(唯品会)、猎聘网、人民日报(灵思云途)、北京万朝科技,曾任架构师、首席技术官、首席科学家等职务,对业务领域B端、C端、电商、职场社交招聘、内容文娱、营销行业都有着丰富的经验,在技术领域,尤其在大数据人工智能方向有丰富的算法工程落地实战经验,其中在猎聘网任职期间主导的推荐算法系统项目获得公司优秀项目奖,推荐效果得到5倍的提升。陈敬雷著有清华大学出版社两本人工智能书籍,分别是《分布式机器学习实战(人工智能科学与技术丛书)》、《自然语言处理原理与实战(人工智能科学与技术丛书)》。目前专注于大数据人工智能驱动的上班族在线教育行业,研发了充电了么app网站,用深度学习算法、nlp、推荐引擎等技术来高效提升在线学习效率。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值