搜索方法和搜索引擎的制作方法

文档序号:8258517阅读:854来源:国知局
搜索方法和搜索引擎的制作方法
【技术领域】
[0001]本发明涉及信息检索技术,尤其涉及一种搜索方法和搜索引擎。
【背景技术】
[0002]搜索引擎是一种根据用户终端输入的关键字,利用倒排索引文件,也称索引文件,进行检索的系统。搜索引擎可分为全文搜索引擎、垂直搜索引擎、集合式搜索引擎和门户搜索引擎等不同种类。搜索引擎需要预先根据包括数十亿,甚至百亿数量级网页的原始网络数据创建索引文件,获得的索引文件的数据量也较大,以全文搜索引擎为例,约为12G到13G数量级。
[0003]现有技术中,通常采用将索引文件存储在磁盘上,当利用文件进行搜索时,需要频繁占用磁盘的输入/输出(I/O)接口,因而导致检索速度下降,效率较低。

【发明内容】

[0004]本发明提供一种搜索方法和搜索引擎,用于提高检索速度和效率。
[0005]本发明的第一个方面是提供一种搜索方法,包括:
[0006]接收用户终端发送的用于对网页进行搜索的关键字;
[0007]利用各从节点的内存中存储的第一索引文件,进行搜索,获得与所述关键字相匹配的第一匹配网页;
[0008]若所述第一匹配网页的个数少于第一阈值,利用所述各节点的磁盘中所存储的第二索引文件,进行搜索,获得与所述关键字相匹配的第二匹配网页;所述第二索引文件是以第一时长为周期对所述各从节点的内存中所存储的所述第一索引文件周期性持久化到磁盘中获得的;
[0009]向所述用户终端发送搜索结果;所述搜索结果包括所述第一匹配网页和/或所述第二匹配网页。
[0010]本发明的另一个方面是提供一种搜索引擎,包括:
[0011]接收模块,用于接收用户终端发送的用于对网页进行搜索的关键字;
[0012]第一搜索模块,用于利用各从节点的内存中存储的第一索引文件,进行搜索,获得与所述关键字相匹配的第一匹配网页;
[0013]第二搜索模块,用于若所述第一匹配网页的个数少于第一阈值,利用所述各节点的磁盘中所存储的第二索引文件,进行搜索,获得与所述关键字相匹配的第二匹配网页;所述第二索引文件是以第一时长为周期对所述各从节点的内存中所存储的所述第一索引文件,周期性持久化到磁盘中获得的;
[0014]发送模块,用于向所述用户终端发送搜索结果;所述搜索结果包括所述第一匹配网页和/或所述第二匹配网页。
[0015]本发明提供的搜索方法和搜索引擎,通过接收用户终端发送的用于对网页进行搜索的关键字,利用各从节点的内存中存储的第一索引文件,进行搜索,获得与关键字相匹配的第一匹配网页后,若第一匹配网页的个数少于第一阈值,再利用各节点的磁盘中所存储的第二索引文件,进行搜索,获得与所述关键字相匹配的第二匹配网页,向用户终端发送包含第一匹配网页和第二匹配网页的搜索结果,由于首先利用内存中存储的第一索引文件进行搜索,不需要占用I/o接口,从而避免了由于全部将索引文件存储在磁盘所导致的检索速度下降,提高了检索效率。
【附图说明】
[0016]图1为本发明一实施例提供的搜索方法的流程示意图;
[0017]图2为本发明另一实施例提供的搜索方法的流程示意图;
[0018]图3为本发明一实施例提供的搜索引擎的结构示意图;
[0019]图4为本发明另一实施例提供的搜索引擎的结构示意图。
【具体实施方式】
[0020]图1为本发明一实施例提供的搜索方法的流程示意图,本实施例所提供的搜索方法可由搜索引擎执行,如图1所示,该搜索方法包括:
[0021]101、接收用户终端发送的用于对网页进行搜索的关键字。
[0022]102、利用各从节点的内存中存储的第一索引文件,进行搜索,获得与关键字相匹配的第一匹配网页。
[0023]其中,第一索引文件是各从节点根据原始网络数据创建的,原始网络数据是主节点以负载均衡为依据,根据各从节点的负载,向各从节点发送的。
[0024]搜索引擎包括上载系统和索引系统,其中索引系统包括主节点和各从节点。主节点以负载均衡为依据,根据各从节点的负载,向各从节点发送原始网络数据,以使各从节点根据原始网络数据创建索引文件。各从节点之间相互不进行通信,由主节点对各从节点进行统一管理,使得对从节点的删减更加灵活。经过测试,若原始网络数据的平均大小为1K,在单节点双核CPU、24G内存的配置的情况下,则该搜索引擎的平均索引速度达到2500条/秒,10个从节点的情况下,则该搜索引擎的平均索引速度达到20000条/秒。
[0025]从节点可采用多线程的工作模式根据原始网络数据创建索引文件。从节点接收主节点发送的原始网络数据,对原始网络数据进行解码,将解码后的原始网络数据加入到原始数据队列中,利用多个索引创建线程,对原始数据队列中的原始网络数据并行进行处理,获得索引文件,将该索引文件存储到内存中,并对内存索引进行更新。其中,内存索引用于指示索引文件的存储位置。
[0026]103、若第一匹配网页的个数少于第一阈值,利用各节点的磁盘中所存储的第二索引文件,进行搜索,获得与所述关键字相匹配的第二匹配网页。
[0027]其中,第二索引文件是以第一时长为周期对所述各从节点的内存中所存储的所述第一索引文件,周期性持久化到磁盘中获得的。
[0028]104、向用户终端发送搜索结果。
[0029]其中,搜索结果包括第一匹配网页和/或第二匹配网页。
[0030]本实施例中的搜索弓I擎可用于对舆情数据的处理中。
[0031]本实施例中,通过接收用户终端发送的用于对网页进行搜索的关键字,利用各从节点的内存中存储的第一索引文件,进行搜索,获得与关键字相匹配的第一匹配网页后,若第一匹配网页的个数少于第一阈值,再利用各节点的磁盘中所存储的第二索引文件,进行搜索,获得与所述关键字相匹配的第二匹配网页,向用户终端发送包含第一匹配网页和第二匹配网页的搜索结果,由于首先利用内存中存储的第一索引文件进行搜索,不需要占用I/o接口,从而避免了由于将索引文件存储在磁盘所导致的检索速度下降,提高了检索效率。
[0032]图2为本发明另一实施例提供的搜索方法的流程示意图,如图2所示,该搜索方法包括:
[0033]201、搜索引擎接收用户终端发送的用于对网页进行搜索的关键字。
[0034]202、搜索引擎利用各从节点的内存中存储的第一索引文件,进行搜索,获得与关键字相匹配的第一匹配网页。
[0035]其中,第一索引文件是各从节点根据原始网络数据创建的,原始网络数据是主节点以负载均衡为依据,根据各从节点的负载,向各从节点发送的。
[0036]主节点通过各从节点发送的心跳包,获取各从节点的负载,心跳包记录各从节点的索引量和活动状态,活动状态为正在工作或未工作。搜索引擎包括上载系统和索引系统,上载系统向索引系统中的主节点发送原始网络数据,上载系统仅与索引系统中的主节点相联系,仅能获知主节点的网络地址。索引系统中的主节点根据心跳包,从各从节点中选择活动状态为正在工作,并且索引量最小的从节点作为目标从节点,向上载系统发送目标从节点的网络地址,以使上载系统根据该网络地址向目标从节点发送原始网络数据。目标从节点接收到原始网络数据之后,在该目标从节点的内存中创建索引文件,直接以增量方式更新内存的索引库后,该索引文件即可用于检索。
[0037]203、若第一匹配网页的个数少于第一阈值,搜索引擎利用各节点的磁盘中的往期索引库中存储的第二索引文件进行搜索。
[0038]其中,往期索引库用于存储持久化到磁盘的时间不大于第二时长的第二索引文件。第二索引文件是以第一时长为周期对所述各从节点的内存中所存储的所述第一索引文件,周期性持久化到磁盘中获得的。
[0039]优先利用各从节点的内存中存储的第一索引文件,进行搜索,但由于内存具有易失性,为了提高索引文件的安全性,需要周期性的将内存中的第一索引文件存储到磁盘中,即持久化到磁盘,由于持久化到磁盘的操作需要对磁盘进行写操作,占用I/o接口,影响搜索引擎的搜索效率,因而持久化到磁盘的操作周期不需要太高,优选第一时长为I个小时。对持久化到磁盘后的第一索引文件进行标记,在每个该第一时长内,只需根据该标记,将最新创建的未持久化到磁盘的索引文件进行操作。
[0040]204、若利用所述各节点的磁盘中的往期索引库进行搜索所获得的匹配网页的个数少于第二阈值,搜索引擎利用所述各节点的磁盘中的历史索引库进行搜索,获得与所述关键字相匹配的第二匹配网页。
[0041]其中,历史索引库用于存储持久化到磁盘的时间大于所述第二时长的第二索引文件。
[0042]205、搜索引擎向用户终端发送搜索结果。
[0043]其中,搜索结果包括第一匹配网页和第二匹配网页。
[0044]进一步,本实施例中的搜索引擎还用于实时监控各从节点的内存的占用率,若各从节点中存在所述内存的占用率超过第三阈值的从节点,根据所述第一索引文件的创建时间,依次对所述内存的占用率超过第三阈值的从节点的内存中所存储的已持久化到磁盘的第一索引文件进行删除。
[0045]具体的,搜索引擎可预先设定第三阈值,以及所删除的已持久化到磁盘的第一索引文件的数据量,即每次删除所释放的存储空间大小。当从节点内存的占用率超过第三阈值时,从内存中选择已持久化到磁盘的第一索引文件,按照第一索引文件的创建时间,依次进行删除,直至所删除的第一索引文件达到预先设定的所释放的存储空间大小。以及将所删除的第一索引文件记录到已卸载队列中。其中,在计算内存的占用率时,不能够使用节点的操作系统所提供的内存信息,而是按照当前内存中加载的所有第一索引文件统计索引库的大小。这是由于搜索引擎在进行搜索时,索引文件是不能够被删除的,操作系统的删除操作仅是减少了索引文件的引用计数,而并没有真正的释放内存空间,是有当所有的搜索操作结束后,该索引文件所占用的内存才能够真正释放。搜索引擎还可在将所删除的第一索引文件记录到已卸载队列中之后,将持久化目录中记录的已卸载队列中的第一索引文件移动至磁盘主索引库目录,对磁盘主索引库目录进行更新,以重新划分磁盘中的往期索引库和历史索引库。
[0046]本实施例中,通过接收用户终端发送的用于对
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1