网页内容抓取 php(企业搜索引擎的系统架构主要针对全文检索的理解和理解技术)

优采云 发布时间: 2022-03-10 21:00

  网页内容抓取 php(企业搜索引擎的系统架构主要针对全文检索的理解和理解技术)

  快速网页数据采集、海量数据的索引与存储、搜索结果的相关性排序、搜索效率的毫秒级要求、分布式处理与负载均衡、自然语言理解技术

  1、数据量

  传统的全文检索系统是面向企业自身的数据或与企业相关的数据。一般索引数据库的规模多在GB级别,数据量只有几百万;然而,互联网网页搜索需要处理数十亿的网页。搜索引擎的策略是使用服务器集群和分布式计算技术。

  2、内容相关性

  信息太多,所以检查和排序非常重要。谷歌等搜索引擎使用网络链接分析技术,根据互联网上的链接数量来判断网页的重要性;但是,全文检索的数据源中的相互链接程度不高。,不能作为判断重要性的依据,只能根据内容的相关性进行排名。

  3、安全

  互联网搜索引擎的数据来源都是互联网上的公开信息,除正文外,其他信息不是很重要;但是,企业全文检索的数据源都是企业内部信息,有级别、权限等限制,而且查询方式也有比较严格的要求,所以它的数据一般都存放在一个安全的数据仓库中集中方式,保证数据安全和管理要求。

  4、个性化和智能

  搜索引擎是针对互联网访问者的。由于数据量和客户数量的限制,自然语言处理技术、知识检索、知识挖掘等计算密集型智能计算技术难以应用。这也是目前搜索引擎技术努力的方向;另一方面,全文检索数据量小,检索需求明确,客户数量少,在智能化和个性化方面可以走得更远。

  搜索引擎系统架构

  这里主要介绍全文检索搜索引擎的系统架构。下文所称搜索引擎,如无特殊说明,亦指全文检索搜索引擎。搜索引擎的实现原理可以看成是四个步骤:从互联网上抓取网页→建立索引库→在索引库中搜索→对搜索结果进行处理和排序。

  1、从互联网上抓取网页

  使用一个网络爬虫程序,可以自动从互联网采集网页,自动访问互联网,并沿着任何网页中的所有URL爬到其他网页,重复这个过程,采集所有爬入服务器的网页。

  2、创建索引数据库

  索引系统程序对采集到的网页进行分析,提取相关网页信息(包括网页所在的URL、编码类型、页面内容中收录的关键词、关键词位置、生成时间、大小,和其他网页的链接关系等),根据一定的相关性算法进行大量复杂的计算,得到每个网页对页面中每个关键词的相关性(或重要性)内容并在超链接中,然后使用这些相关信息构建网页索引数据库。

  3、搜索索引数据库

  当用户使用关键词进行搜索时,搜索请求被分解,搜索系统程序从网页索引数据库中查找与关键词匹配的所有相关网页。

  4、搜索结果的处理和排序

  关于这个 关键词 的所有相关信息都记录在索引数据库中。只需将相关信息和网页级别综合起来,形成一个相关值,然后进行排序。相关性越高,排名越高。最后,页面生成系统将搜索结果的链接地址和页面内容摘要整理后返回给用户。

  下图是一个典型的搜索引擎系统架构图,搜索引擎的各个部分都会相互交织,相互依存。其处理流程描述如下:

  “网络蜘蛛”从互联网抓取网页,将网页发送到“网页数据库”,从网页“提取URL”,将URL发送到“URL数据库”,“蜘蛛控制”获取URL网页,控制“网络蜘蛛”爬取其他页面,重复循环,直到所有页面都被爬完。

  系统从“网页数据库”中获取文本信息,发送到“文本索引”模块进行索引,形成“索引数据库”。同时进行“链接信息提取”,将链接信息(包括锚文本、链接本身等信息)发送到“链接数据库”,为“网页评分”提供依据。

  “用户”向“查询服务器”提交查询请求,服务器在“索引数据库”中搜索相关网页,而“网页评分”则结合查询请求和链接信息来评估查询的相关性搜索结果。查询服务器”按相关性排序,提取关键词的内容摘要,整理最终页面返回给“用户”。

  搜索引擎的索引和搜索

  网络蜘蛛技术和排序技术请参考作者的其他文章[1][2]。这里以谷歌搜索引擎为例,主要介绍搜索引擎的数据索引和搜索过程。

  数据的索引分为三个步骤:网页内容的提取、词的识别、索引库的建立。

  Internet 上的大部分信息都以 HTML 格式存在,而对于索引,只处理文本信息。因此,需要对网页中的文本内容进行提取,过滤掉一些脚本标识和一些无用的广告信息,同时记录文本的布局格式信息[1]。单词识别是搜索引擎中非常关键的部分,网页中的单词是通过字典文件来识别的。对于西方信息,需要识别不同形式的词,如单复数、过去时、复合词、词根等,对于一些亚洲语言(汉语、日语、韩语等),词需要分割处理[3]。识别网页中的每个单词,并分配一个唯一的 wordID 编号以服务于数据索引中的索引模块。

  索引库的建立是数据索引结构中最复杂的部分。一般需要建立两种索引:文档索引和关键词索引。文档索引为每个网页分配一个唯一的 docID 编号。根据docID索引,这个网页出现了多少个wordID,每个wordID出现的次数,位置,大写格式等,形成docID对应的wordID的数据列表;关键词@ > 索引实际上是文档索引的反向索引。根据wordID,该词出现在那些网页中(以wordID表示),在每个网页上出现的次数、位置、大写格式等,形成wordID对应的docID列表。

  关于索引数据的详细数据结构,感兴趣的朋友可以参考文献[4]。

  搜索过程是满足用户搜索请求的过程。通过用户输入搜索关键词,搜索服务器对应关键词词典,搜索关键词转化为wordID,然后在索引数据库中获取。docID列表,扫描docID列表匹配wordID,提取符合条件的网页,然后计算网页与关键词的相关性,根据相关性的值返回前K个结果(不同的搜索引擎每页不同数量的搜索结果)返回给用户。如果用户查看了第二页或页数,则再次进行搜索,将排序结果中K+1到2*Kth的网页组织返回给用户。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线