搜索问题就是找出与给定关键字值相对应的记录,或者说是确定在数据结构中不存在这样的记录。如果数据是自然的线性顺序(例如,字典中字的顺序),这就使研究相关的问题非常有意义,我们称之为范围搜索。
定义
搜索问题就是找出与给定关键字值相对应的记录,或者说是确定在数据结构中不存在这样的记录。如果数据是自然的线性顺序(例如,字典中字的顺序),这就使研究相关的问题非常有意义,我们称之为范围搜索(range searching)。
这个问题是定位的问题,并不是搜索规定关键字值的单一记录,而是搜索位于两个具体关键字限值之间的所有记录。
为了抽象地描述这个问题,我们假设想要表示的有序对由key值和info值组成,我们希望在info值上实现任意操作Op:
RangeSearch(L,U,S,Op):在每个info I 上执行Op操作,当。
在普通的二分搜索树中很容易实现范围搜索。其基本的思想就是,从树中的一个节点开始,对存储在节点上的信息执行相应的操作,如果节点的关键字K在这个范围内;如果就在左子树中递归搜索(因为在左子树中可能有该范围内的附加元素),如果就在右子树中递归搜索。
搜索引擎
定义
搜索引擎是指根据一定的策略,运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索的相关信息传输到用户的系统。搜索引擎包括全文索引、目录索引、元搜索引擎、
垂直搜索引擎、集合式搜索引擎、门户楷索引擎与免费链接列表等。
工作原理
第一步:爬行:搜索引擎是通过运行一种特定规律的软件来跟踪网页的链接,从一个链接追踪到另外一个链接,就像蜘蛛在蜘蛛网上爬行一样,所以被称为“蜘蛛”,也被称为“机器人”。搜索引擎“蜘蛛”在互联网爬行时,它被设置了一定的规则,需要遵守某些命令或文本的规则。
第二步,抓取存储:搜索引擎是通过“蜘蛛”跟踪链接爬行到网页,并将爬行得来的数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTMI。是完全一样的。搜索引擎“蜘蛛”在抓取页面时,也对内容做一定的重复性检测,一旦遇到权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。
第三步,预处理:这是指搜索引擎将“蜘蛛”抓取回来的页面进行各种步骤的预处理。
(1)提取文字;
(2)中文分词;
(3)去停词;
(4)消除嗓音;
(5)去重;
(6)正向索引;
(7)倒排索引;
(8)链接关系计算;
(9)特殊文件处理。
第四步,排名:用户在搜索框输入关键词后,排名程序调用索引库数据,计算排名显示给用户,排名过程是与用户直接互动的。由于搜索引擎获取的数据量庞大,搜索引擎的排名规则通常根据日、周、月属性进行更新。