搜索引擎中输入检索词到返回十条结果,发生了哪些事情

移动互联网时代搜索引擎依然是重要流量来源以及流量分发渠道,虽然比PC互联网时代权重有所降低。

各大电商淘宝、京东80-90%交易额也是由用户app内搜索、网站内搜索产生,个性化推荐系统本身也和搜索

引擎无论技术还是产品方方面面都与搜索引擎有着关联,我们每天也都和搜索引擎打着交道,搜索知识、

搜索问题、搜索新闻、了解世界,搜索引擎价值巨大,作为一个技术人应该了解他并不断深入了解他。

百度第三代搜索引擎架构

当我们使用搜索引擎检索信息时,输入想要查找检索词,点击回车,搜索引擎在1s左右时间返回十篇

文档。使用他对于有一定互联网经验人来说相当方便,但其背后发生了哪些事情,是不是如前台返回这样

简洁优雅呢,下面杉枫带着大家一起一看究竟。

输入搜索词后,这时搜索引擎会进行联想词推荐、相关搜索推荐。

搜索联想词目的是让搜索更加准确,推荐补全选项是搜索很多并且基于输入词前缀匹配补全,这样能

更精准满足用户检索需求,极大提升用户体验,在通用搜索引擎,以及电商淘宝、京东等电商搜索是标配。

搜素词还要进行分词,分词是搜索准确前提条件,试想如果你搜索“严守一把手机关了”分词成“严守、

严守一、一把、一把手、把手、手机、机关、关了”,这样就很难搜索到想要内容了,分词要识别人物

名称。这种情况属于分词中的歧义,是分词中比较难处理问题,需要不断优化算法以及进行定时人工干

预分词,来使分词准确。

再有就是新词发现,随着社会发展以及互联网快速发展,网民会不断创建词来表达新的含义事物,

因为有研究发现新词带来的分词问题是歧义的10倍左右,所以它是分词面临的最大挑战。“老铁”、“神马”、

“怼”等等需要分词系统要能不断及时对新词进行识别,准确分词。

搜索词短语识别,对于检索词要进行短语判断,如是短语类型检索,给出和搜索短语相关词多,

并且词之间顺序位置要近,形成短语关系为打分权重一个重要依据。

搜索同义词替换,有些时候搜索内容在搜索引擎收录不多,为了满足用户搜索需求,可以将搜索词

进行同义词近义词替换,可以见搜索引擎研究杂记在微信搜索“卓越网”实例,因“卓越网”数据在微信中

不多,微信将“卓越”替换成“优秀”进行搜索文章召回,虽然体验也没有特别好,但终究给用户更多选择。

怎么找到同义词也是好问题。方法一可以通过词典,金山、网易来寻找同义词别名建立同义词库,

再有就是百科中同义,又名等抽取同义词,还可以通过多个搜索词指向同一结果,说明它们有一定几率

是同义词。以及其他方法,后边会写一篇专门做同义词词库提取。

搜索词纠错,输入“刘的华”要能推荐出“刘德华”,“2084”要能推荐出“2048”,“我的后半生”要能推荐

出“我的前半生”,等等因为搜索引擎面向全部用户,很多用户不能熟练使用搜索引擎以及输入法,搜索

词纠错必不可少。

上边是列举出搜索词分词、搜索联想、搜索纠错等一系列过程基本上完成对于搜索词处理。

搜索引擎本身是个分布式系统,用户点击搜索提交搜索词后,搜索引擎收到搜索词后,在多个节点

根据倒排索引进行召回,会根据用户输入进行分词后召回,召回逻辑根据分词、同义词、短语多个维度

进行召回,召回还要包含交集关系(比如搜索“推荐系统架构”)那么包含在“推荐系统”、“架构”两个词倒

排索引下文档取交集。

用户检索内容的分词,少词下文档有几千,多的几万、几十万、几百万,这时取哪些文章进行召回

就很关键,因为磁盘IO很慢不可能实现对于几百万文章全部召回。这时就需要做两种选择,一种是离线

排序根据PageRank、网站权重、作者权重等多个维度离线打分来标识文章质量对文章进行离线排序,

搜索引擎实时召回文章时就只需几百几千个进行召回,几百、几千文章召回很好实现的,性能也没有问

题。一种是离线进行一定排序,搜索引擎实时召回实时根据F-IDF、BM25、其他特征进行打分高分存入

带返回结果集合,设置超时时间到了超时时间停止进行召回,对已存在召回集进行返回。

短语召回集要召回,包含多个词并且多个词在文章中位置近的权重高。

多于召回数据要根据TF-IDF、BM25、用户曝光后点击、跳出率等等多个特征进行打分排序,排序后

进行返回,当下搜索引擎特征因素会有上百甚至几百,但核心目的是为了找到最满足用户需求文章进行返回。

想做推荐引擎想要做好推荐引擎必须研究搜索引擎,因为他俩有千丝万缕关系,研究好了一个对于做

另一个有很多启发。

这篇是篇原理,后边会分享下百度第三代搜索引擎架构,第二代搜索引擎架构有hadoop开源存储引

擎加上c++搜索引擎构成,更新数据需要2-3周实时性差,第三代搜索引擎全部由c++开发打造,抓取更新

数据能到分钟级,性能提升三个数量级是质的飞跃,敬请期待!

微信搜索:debugme123

微信扫码关注:

时间: 2024-10-11 22:58:07

搜索引擎中输入检索词到返回十条结果,发生了哪些事情的相关文章

输入url到页面加载都发生了什么事情?(一道软件测试面试题)

文章首发于公众号:软件测试er 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法: Question 1请讲一下tcp三次握手 OK等你把这个记好了,下次面试:Question 2 tcp和http有什么区别?? Question 3 http和https区别? Question 4 http请求方法? Question 5常见的返回状态码有哪些?都是什么含义?...一开始我也只是应付面试,去了解这些问题,但是发现自己并不能很好的理解.而在平时测试中需要定

python--输入检索词自动爬取百度搜索页标题信息

背景:在百度每次输入关键词检索后,会出现很多的检索页,不利于有效阅读,为更方便收集检索信息,编写了一个可以收集每个检索页与检索词相关的十条检索信息(百度在每个检索页放置十条检索标题信息).可以根据需要选择爬取多少检索页,通过修改main()函数的depth变量 1 import urllib.request 2 import re 3 4 def get_html_text(url,data_lst,depth): 5 7 for i in range(depth): 8 9 # 根据分析构造网

深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1

背景 “从浏览器中输入URL到页面加载的发生了什么“,这是一道经典的面试题,涉及到的知识面非常多,但作为一个自认为对网络知识掌握的比较好的老码农来说,回答这个问题自然不在话下.如果这道题目如果在面试出现,对我来说就是送分题啊.尽管如此,我还是愿意花一些时间根据我自己的理解回答一下这个题目,看我自己到底掌握的有多深,同时也把自己的知识梳理一下. 这让我想起另外一件往事,这道题有点类似于“在手机上浏览器上输入一个URL,手机做了一些什么”,我当时学习通信里的核心网时就给自己提出过这个问题. 我非常愿

搜索引擎中查询纠错总结

搜索引擎是目前人们获取信息最重要的方式之一,其最基本最核心的功能是信息检索,找到含有关键字的网页或文档,然后按照一定排序将结果给出,在此基础之上,能够提供更多更复杂的功能来提升用户体验.对于一个成熟的搜索系统,用户看似简单的搜索过程,需要在系统中经过多个环节,多个模块协同工作,才能提供一个让人满意的搜索结果.在搜索引擎输入的查询中,有相当一部分是带输入错误的查询.而提交有错误的查询给搜索引擎,通常得不到好的搜索结果,返回结果数很少并且和用户的期待相差很远,会严重影响了用户的使用体验.因此查询纠错

搜索引擎-一种提示词推荐算法

搜索引擎可以说目前所有互联网应用里技术含量最高的一种.尽管应用形式比较简单:用户输入查询词,搜索引擎返回搜索结果.但是,搜索引擎需要达到的目标:更全.更快.更准.如何让搜索结果更准确始终是搜索引擎的一大难题. 公司最近在开发某行业的垂直搜索引擎,我作为该项目组的核心成员主要是负责核心算法的研究工作.我也是刚开始接触这个行业,目前还处于摸索阶段,还有很长的路要走. 言归正传,先谈一下这个项目的背景.这个项目是一个行业性质的垂直搜索引擎.用户分为两大类:普通用户.专业用户.整个项目分为:爬虫技术组,

垂直搜索引擎中的分词系统

分词系统的框架与实现介绍---本文适合对搜索引擎有良好概念的读者(原创) 关键字:搜索引擎,分词,Lucene 国内垂直领域的电商或者信息分享类应用都处于高速发展期,其对内容快速搜索的需求越来越强烈,对于能适应自己业务应用的搜索引擎解决方案也越来越重视.同时,通用的可选开源搜索引擎框架或解决方案也越来越多,如著名的Lucene,Solr,ElasticSearch等.打造一套完美适应自身业务需求的搜索引擎是个具有挑战性的任务,而且无论选择Lucene,Solr这些搜索引擎框架.方案还是自己另写一

输入url到页面返回的过程

输入url后,你看到了百度的首页,那么这一切是如何发生的呢? 这个问题之前.最近.我想以后肯定还会被问到,或者问到这样的题目,如果在百度框里输入查询的字符串开始,是怎么返回你需要的东西呢. 那这什么个过程呢(这个问题我在之后的博客中在写)? 网上各种的说法,不外乎这么几种 第一种简单的说呢就是这样的: 第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器. 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回. 第三步:如

在浏览器中输入网址后是怎么跳转到指定的服务器的

1. 首先,在浏览器里输入要网址 2. 浏览器查找域名的IP地址 DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间. 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等). 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname).这样便可获得系统缓存中的记录. 路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存. ISP

面试题——分析从输入url到页面返回的过程(或者查询返回过程)

1. You enter a URL into the browser(输入一个url地址) 2.The browser looks up the IP address for the domain name(浏览器查找域名的ip地址) 导航的第一步是通过访问的域名找出其IP地址.DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间. 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等). 系统缓存 – 如果在浏览器