zoukankan      html  css  js  c++  java
  • 搜索引擎的基本原理

    搜索引擎基本框架图

    上面是老师上课时给出的搜索引擎基本框架图,主要分为以下三个基本模块:

         Web信息采集模块

       目前有很多的Open Source爬虫工具,如Weblech(http://weblech.sourceforge.net/)博士师兄推荐的工具,使用起来比较简单,容易上手,Nutch(http://lucene.apache.org/nutch/)是一个基于Lucene的,类似于Google的解决方案,Larbin,Heritrix,WebSpinx(感觉这个工具也不错,有可视化界面,并且定制功能也特别的强大,准备继续研究)等等。利用这些现有的开源工具(当然也可以利用一些开发包自己写爬虫)抓取互联网上的数据,存储在文档库中。信息采集系统也常常称为Robot,Spider,Crawler等等。在互联网海量信息中发现并搜索多种类型的文档内容。如html,xml,ppt,word,pdf,多媒体信息等。这就是网络爬虫

      索引与检索模块

      爬虫抓取完互联网中的海量数据之后,因为数据是非常巨大的,当用户检索某个关键词时,不可能去逐个的扫描每一个文档,最后将结果返回给用户,这很显然不可能满足实时行的要求。当前的搜索引擎采用的都是通过建索引的机制来实现实时的搜索功能,可以提高实时的搜索速度。大部分是基于反向索引的。

          索引的功能是对搜索的信息进行分析处理,从中抽取索引项,用于表示文档以及生成文档的索引表。搜索引擎的索引表通常采用倒排表,即倒排索引。(根据关键词组织文档,而不是按文档组织关键词),在完成大作业的过程中,采用了基于Lucene的索引机制。

          Web接口

           人机交互的接口模块,用户通过向服务器提交查询请求,然后服务器根据用户的请求,返回给用户查询结果,来完成用户的搜索功能。比如基于Tomcat的Web查询。

         

      

  • 相关阅读:
    实现IEnumberable接口和IEnumberator
    XAML-1
    Java基础00-Java概述1
    详解Lombok中的@Builder用法
    stream之map的用法
    stream之forEach的用法
    Java中map.getOrDefault()方法的使用
    BiPredicate的test()方法
    Function.identity()
    java 8 lamda Stream的Collectors.toMap 参数
  • 原文地址:https://www.cnblogs.com/dlutxm/p/2281644.html
Copyright © 2011-2022 走看看