当前位置:编程学习 > C#/ASP.NET >>

请问Google和百度的搜索结果是怎么实现的?

比如你搜一下“csdn”
那么搜索结果的标题 或者 下面的内容简介中 肯定含有“csdn”。
通常简介是截取含有“csdn”的段落。

简单的情况容易处理,比如上面例子,我们可以判断CSDN在正文中的位置 ,然后截取相邻的字符。

但是当涉及到多关键词,全文检索等情况。我们就很难知道 我们搜到的是哪个关键字,那个关键字出现的位置了


不止是谷歌和百度,很多搜索版块也都有这种功能,请问MSSQL里面有没有直接实现的方法? --------------------编程问答-------------------- 去问李开复就知道了~~~~ --------------------编程问答-------------------- 涉及到搜索引擎的原理了.


  搜索引擎虽然表现为各种不同的形式,但其最根本是由信息搜集系统、索引数据库和查询接口三部分组成。下面就分别详细描述不同形式搜索引擎的组成:

  1)目录导航搜索引擎的信息搜集系统、索引数据库和查询接口

  目录导航式搜索引擎的信息搜集系统主要是由人工来完成,搜索引擎的标引专家依靠手工来搜寻不断出现的新的网站,给每个网站一个标题和大概的描述,将其放入相应的类目体系中。在页面上表现为每个类目路径下排列着相关的网站,所以也叫目录导航。

  目录导航式搜索引擎的索引数据库存入每个网站的标题、描述、类目、超文本链接(URL)组成倒排文档。 目录导航式搜索引擎提供两种查询接口形式,一种是在网页上用户可以直接点击树状目录,一层一层的点击查看下去,直到找到用户需求的相关类目下的网站信息。另一种查寻接口就是关键词检索,用户直接在搜索框中输入所需信息的关键词,服务器接受命令后就会去索引数据库中匹配关键词,返回查询结果。因此可以看到,目录导航实现的原理比较简单,主要是编制目录导航页面和设计简单的检索功能。

  2) 网页搜索引擎的信息搜集系统、索引数据库和查询接口

  网页搜索引擎完全体现了现代先进的网络技术。

  网页搜索引擎的信息搜集系统是通过网络机器人(robot)或是网络易做图(spider)来自动完成的,不需要任何的人工处理。网络机器人(robot)或是网络易做图(spider)从一组已知的文档出发,通过这些文档的超文本链接确定新的检索点,然后用机器人或易做图周游这些新的检索点,标引这些检索点上的新文档,加入索引数据库组成倒排文档。因此如何从原始文档中抽取出全部有用信息,并将抽取的信息记录到索引库中是关键。

  网页搜索引擎的的索引数据库建立的策略很大程度上影响了搜索引擎的效率与准确性。在设计一个索引数据库时,要针对实际需要确定索引数据库的数据结构和存储方式。由于搜索引擎系统通常处理的都是海量的信息,因此还要设计一定的压缩策略,对索引库进行有效的压缩,以提高检索的速度。索引库的具体结构在下文中会有详细的描述。

  网页搜索引擎一般只提供关键词检索这一种检索接口形式。为了方便用户的检索,网页检索的检索接口除了要提供对单个字符串进行检索的基本检索功能外,还要支持多种复杂的高级检索功能,如多个字符串组合检索、模糊检索等。网页搜索引擎的检索接口还担负着检索结果相关性排序等关键技术的实现。

  当然,也有的搜索引擎开发公司利用网络机器人(robot)或是网络易做图(spider)抓取的网页用计算机自动分类建立目录导航系统,象香港中文大学开发的悠游网(http://www.goyoyo.com)就是这种类型。

  3) 随着网络的发展,出现了许多多媒体搜索引擎,比如图片搜索引擎、MP3音乐搜索引擎等。

  1999年,许多经营图库的公司逐渐将其图库上网,并使得内容可以被搜索利用。图像搜索技术可以分为基于文字的搜索与基于内容的搜索。基于文字的搜索是利用图像的文字描述寻找需要的图像;基于内容的检索是分析图像中颜色、纹理分布等特征,寻找相关的图像。有一种做法是用户首先点选画面中随机产生的图片中比较符合需求的图片,找到与用户选择较为相似的图片,用户再从中点选更为接近要求的图片,经过数次互动后,用户可以愈来愈接近想查找的图片。
--------------------编程问答-------------------- 就没有人给点实际的回复吗
期待高手 --------------------编程问答-------------------- 你问的问题都不实际,如果谁知道GOOGLE和BAIDU的搜索是怎么做的,我看你得上亿去买 --------------------编程问答-------------------- 2005里面有AJAX控件得,可以去试试,有这样得简单效果 --------------------编程问答-------------------- 一般搜索用Lucene.net实现
你说的baidu google如果那么容易就知道 我就没时间在这里回复你的帖子了 --------------------编程问答-------------------- 简单的做模糊查询,将结果返回;
复杂的做中文分词,这方面google、baidu上搜索也是很多的; --------------------编程问答-------------------- Google里面有一篇论文介绍了他的MapReduce系统构架和BigTable系统构架,这两个系统就是来存储这些关键字的。你发送一个搜索CSDN的请求,Google服务器接收后将会在BigTable里面寻找索引,然后再根据这个索引将相关的信息显示出来。

他的索引是在你搜索之前就已经做好的,所以你看到的效果就好像是在一段文章中显示一个关键字。其实他是将包含这个关键字的文字进行了存储。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,