CN104794228B - 一种搜索结果提供方法及装置 - Google Patents
一种搜索结果提供方法及装置 Download PDFInfo
- Publication number
- CN104794228B CN104794228B CN201510219892.9A CN201510219892A CN104794228B CN 104794228 B CN104794228 B CN 104794228B CN 201510219892 A CN201510219892 A CN 201510219892A CN 104794228 B CN104794228 B CN 104794228B
- Authority
- CN
- China
- Prior art keywords
- search result
- databases
- memory
- whole
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
本发明实施例公开了一种搜索结果提供方法及装置,该方法包括:根据用户输入的搜索关键词,判断内存或redis数据库或couchbase数据库中存在该关键词对应的整个搜索结果时,将该整个搜索结果提供给用户,否则,获取该搜索关键词对应的每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果,将每个搜索结果组合成整个搜索结果提供给用户并保存在内存中。由于在本发明实施例中搜索结果保存在了内存、redis数据库或couchbase数据库中,通过多级缓存为用户提供整个搜索结果,从而提高用户获取搜索结果的效率,并降低了搜索引擎的处理能力,提高了搜索引擎的处理性能。
Description
技术领域
本发明涉及数据缓存技术领域,特别涉及一种搜索结果提供方法及装置。
背景技术
随着互联网技术的飞速发展,用户从互联网上获取的信息越来越多。搜索引擎是用户在互联网上进行信息搜索的工具。用户进行搜索时,一般是将搜索关键词提供给搜索引擎,通过搜索引擎在海量数据中进行选择,获取相应搜索结果。由于基本所有用户的搜索请求都会发送到搜索引擎,导致搜索引擎的搜索压力越来越大。
然而用户在进行搜索时,存在搜索关键词高度集中的情况,因此可以通过缓存方式,在内存中缓存集中度较高的搜索关键词的搜索结果,来降低搜索引擎的压力,提高搜索引擎的处理性能。但搜索引擎的缓存空间是有限的,即使存在关键词高度集中的情况,也无法同时缓存每个关键词的搜索结果,因此现有的搜索结果提供方法,无法高效为用户提供搜索结果,降低了搜索引擎的处理性能。
发明内容
本发明实施例公开了一种搜索结果提供方法及装置,用以提高向用户提供搜索结果的效率,提高搜索引擎的处理性能。
为达到上述目的,本发明实施例公开了一种搜索结果提供方法,该方法包括:
搜索引擎接收用户输入的搜索关键词;
判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果;
如果是,将所述整个搜索结果提供给所述用户;
否则,获取所述搜索关键词对应的每条搜索结果的标识信息,根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的搜索结果,将每个搜索结果组合成整个搜索结果提供给所述用户,并在内存中将组合得到的整个搜索结果针对该搜索关键词保存。
进一步地,所述在内存中将组合得到的整个搜索结果针对该搜索关键词保存之前,所述方法还包括:
判断当前内存中保存的整个搜索结果的数量是否达到设定阈值;
当未达到时,将该数量增加1,并进行后续保存步骤。
进一步地,所述方法还包括:
针对每个整个搜索结果,根据内存中该整个搜索结果对应的存储时长,判断该整个搜索结果的存储时间是否到期;
如果是,在内存中删除该整个搜索结果,并将该数量减少1。
进一步地,所述获取所述搜索关键词对应的每条搜索结果的标识信息还包括:
获取该每条搜索结果的存储位置信息;
所述从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果包括:
根据所述存储位置信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果。
进一步地,所述方法还包括:
当满足检测条件时,判断redis数据库和couchbase数据库是否运行正常;
当redis数据库和couchbase数据库中至少一个异常时,按照设定的时长增量,增加内存中每个整个搜索结果的存储时长;
否则,将内存中每个整个搜索结果的存储时长恢复为默认时长。
进一步地,所述判断当前缓存中是否存在该搜索关键词对应的整个搜索结果;如果是,将缓存中的整个搜索结果提供给所述用户包括:
判断内存中是否存在该搜索关键词对应的整个搜索结果;
如果是,将内存中的整个搜索结果提供给所述用户;
否则,判断redis数据库是否存在该搜索关键词对应的整个搜索结果;
如果是,将该整个搜索结果提供给所述用户;
否则,判断couchbase数据库是否存在该搜索关键词对应的整个搜索结果;
如果是,将该整个搜索结果提供给所述用户。
进一步地,所述判断couchbase数据库是否存在该搜索关键词对应的整个搜索结果包括:
将所述搜索关键词发送到局域网内其他设备;
判断局域网内其他设备的couchbase数据库是否存在该搜索关键词对应的整个搜索结果。
本发明实施例提供了一种搜索结果提供装置,所述装置包括:
接收模块,用于接收用户输入的搜索关键词;
缓存模块,用于缓存搜索结果;所述缓存模块包括:内存、redis数据库和couchbase数据库;
判断模块,用于判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果;
第一提供模块,用于当判断模块判断为是时,将所述整个搜索结果提供给所述用户;
第二提供模块,用于当判断模块判断为否时,获取所述搜索关键词对应的每条搜索结果的标识信息,根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果,将每个搜索结果组合成整个搜索结果提供给所述用户;
所述内存,用于针对该搜索关键词保存组合得到的整个搜索结果。
进一步地,所述判断模块,还用于判断当前内存中保存的整个搜索结果的数量是否达到设定阈值;判断该数量未达到时,将该数量增加1;
所述内存,具体用于当判断模块判断该数量未达到时,针对该搜索关键词保存组合得到的整个搜索结果。
进一步地,所述判断模块,还用于针对每个整个搜索结果,根据内存中该整个搜索结果对应的存储时长,判断该整个搜索结果的存储时间是否到期;当判断结果为是时,将该数量减少1;
所述装置还包括:
删除模块,用于当判断模块判断整个搜索结果的存储时间到期时,删除内存中该整个搜索结果。
进一步地,所述判断模块,还用于在当前满足检测条件时,判断redis数据库和couchbase数据库是否运行正常;
所述内存,还用于当判断模块判断redis数据库和couchbase数据库中至少一个异常时,按照设定的时长增量,增加内存中每个整个搜索结果的存储时长,当判断模块判断redis数据库和couchbase数据库都正常时,将内存中每个整个搜索结果的存储时长恢复为默认时长。
进一步地,所述第二提供模块,还用于获取该每条搜索结果的存储位置信息;根据所述存储位置信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果。
本发明实施例公开了一种搜索结果提供方法及装置,该方法包括:根据用户输入的搜索关键词,判断缓存中存在该关键词对应的整个搜索结果时,将该整个搜索结果提供给用户,否则,获取该搜索关键词对应的每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果,将每个搜索结果组合成整个搜索结果提供给用户,并在内存中保存该组合得到的整个搜索结果。由于在本发明实施例中搜索结果保存在了内存、redis数据库或couchbase数据库中,通过多级缓存为用户提供整个搜索结果,从而提高用户获取搜索结果的效率,并降低了搜索引擎的处理能力,提高了搜索引擎的处理性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种搜索结果提供过程;
图2为本发明实施例一提供的一种搜索结果提供过程;
图3为本发明实施例二提供的一种搜索结果提供过程;
图4为本发明实施例三提供的一种搜索结果提供过程;
图5为本发明实施例四提供的一种搜索结果的提供过程;
图6为本发明实施例提供的一种搜索结果提供装置结构示意图。
具体实施方式
为了提高向用户提供搜索结果的效率,提高搜索引擎的处理性能,本发明实施例提供了一种搜索结果提供方法及装置。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种搜索结果提供过程,该过程包括以下步骤:
S101:搜索引擎接收用户输入的搜索关键词。
搜索关键词可以是搜索视频资源的关键词,也可以是搜索音频资源的关键词,或者也可以是搜索图片资源等其他互联网资源的关键词。
S102:判断当前内存、redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果,如果是,进行S103,否则,进行S104。
在本发明实施例中建立了三级缓存机制,分别为:内存、redis数据库和couchbase数据库。可以根据数据被访问的频率,确定数据的存储位置。一般可以在内存中存储被高频访问的数据。整个缓存中保存有全量数据,即无论输入什么搜索关键词,在缓存中都能查找到对应的整个搜索结果,无论该搜索结果是整个存储在一起,还是通过查找的方式,将每条搜索结果组合得到的。
S103:将缓存中的整个搜索结果提供给所述用户。
该整个搜索结果可以是内存中的,也可以是redis数据库中的,还可以是couchbase数据库中的。无论该整个搜索结果保存在缓存的什么位置,都可以通过查找的方式获取并提供给用户。较佳地,在查找缓存中是否存在该整个搜索结果时,可以按照内存、redis数据库和couchbase数据的顺序进行查找。
S104:获取所述搜索关键词对应的每条搜索结果的标识信息。
整个搜索结果是由多条搜索结果构成的,在搜索引擎中保存有每条搜索结果的标识信息,并针对该标识信息保存有其对应的详细信息,搜索结果的标识信息可以为搜索结果的id,确定每个搜索结果的id属于现有技术,本发明中不进行赘述。根据每个搜索关键词,搜索引擎可以确定该搜索关键词对应的每条搜索结果的标识信息。其中,保存搜索结果的标识信息与搜索结果的详细信息的对应关系属于现有技术,在本发明实施例中对该对应关系的保存不进行赘述。
S105:根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果,将每个搜索结果组合成整个搜索结果提供给所述用户,并在内存中将组合得到的整个搜索结果针对该搜索关键词保存。
由于在整个缓存中保存有全量数据,因此得到每条搜索结果的标识信息后,可以在内存、redis数据库和couchbase数据库中,获取每个标识信息对应的详细信息,从而可以将每个搜索结果组合成该搜索关键词的整个搜索结果。
为了后续再接收到搜索关键词时,提高提供该整个搜索结果的速度,可以将组合得到的整个搜索结果针对该搜索关键词保存在内存中。
由于在本发明实施例中搜索结果保存在了内存、redis数据库或couchbase数据库中,通过多级缓存为用户提供整个搜索结果,从而提高用户获取搜索结果的效率,并降低了搜索引擎的处理能力,提高了搜索引擎的处理性能。
为了达到高速访问的目的,在本发明实施例中建立内存、redis数据库和couchbase数据库三级缓存机制。将被访问频率较高的数据存储在内存中,将较重要的数据存储在redis数据库中,其余数据存储在couchbase数据库中。
具体的,在redis数据库中存储较重要的数据时,可以根据该数据的meta标签,确定该数据的重要性,从而将重要的数据存储在redis数据库中,剩余数据存储在couchbase数据库中,其中meta标签为在网页的HTML源代码中一个重要的代码,确定每个数据的meta标签的方法属于现有技术,在本发明实施例中就不进行赘述。针对视频数据,可以将视频数据的专辑数据作为重要数据存储在redis中,对于音频数据,可以将著名歌唱家的专辑作为重要数据,或者将某一唱片公司出品的专辑作为重要数据等等,具体使用时可以根据需要设定重要数据的属性。每个数据即每条搜索结果在缓存中保存时,为了查找方便可以按照标识信息-详细内容的格式进行存储。
由于在本发明实施例中将被访问频率较高的整个搜索结果存储在了内存中,将较重要的搜索结果存储在了redis数据库中,因此当接收到用户输入的搜索关键词时,判断当前缓存中是否存在该搜索关键词对应的整个搜索结果时包括:
判断内存中是否存在该搜索关键词对应的整个搜索结果;
如果是,将内存中的整个搜索结果提供给所述用户;
否则,判断redis数据库是否存在该搜索关键词对应的整个搜索结果;
如果是,将该整个搜索结果提供给所述用户;
否则,判断couchbase数据库是否存在该搜索关键词对应的整个搜索结果;
如果是,将该整个搜索结果提供给所述用户。
依次判断内存、redis数据库和couchbase数据库中是否存储有该搜索关键词对应的整个搜索结果,如果在缓存中存在,则将缓存中的整个搜索结果提供给用户。
在本发明实施例为了使大部分搜索关键词的请求命中内存中缓存的整个搜索结果,未命中的搜索关键词的请求通过缓存中的redis数据库和couchbase数据库来提供。Redis数据库的相应速度较快,但是其相应速度受当前所在设备内存大小的限制,couchbase数据库可以讲数据持久到硬盘上,可以支持较大数量的存放。
为了保证重要数据的安全性,可以在局域网将搭建的某一redis数据库作为master,其他设备上搭建的redis数据库为slave,master按照设定的时间间隔,同步其内存储的重要数据。为了构建大的couchbase数据库,形成couchbase数据库集群,在本发明实施例中可以在局域网内每台设备上搭建couchbase数据库,构成couchbase数据库集群。因此判断couchbase数据库是否存在该搜索关键词对应的整个搜索结果包括:将所述搜索关键词发送到局域网内其他设备;判断局域网内其他设备的couchbase数据库是否存在该搜索关键词对应的整个搜索结果。
本发明实施例中由于重要数据存储在了redis数据库中,当缓存中没有保存该搜索关键词对应的整个搜索结果时,可以根据每条搜素结果的存储位置信息,从对应的位置获取该条搜索结果。具体的,在获取搜索关键词对应的每条搜索结果的标识信息时,还可以获取该每条搜索结果的存储位置信息。例如0表示该条搜索结果保存在redis数据库中,1表示条搜索结果保存在couchbase数据库中,没有标识可以表示该搜索结果的详细信息存储在内存中。因此,在获取该标识信息对应的每个详细信息时,包括:根据所述存储位置信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个详细信息。
图2为本发明实施例一提供的一种搜索结果的提供过程,该过程包括:
S201:搜索引擎接收用户输入的搜索关键词。
S202:判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果,其中所述缓存包括:内存、redis数据库和couchbase数据库,如果是,进行S203,否则,进行S204。
S203:将缓存中的整个搜索结果提供给所述用户。
S204:获取所述搜索关键词对应的每条搜索结果的标识信息及其存储位置信息。
S205:根据所述每条搜索结果的标识信息及其存储位置信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果。
S206:将每个搜索结果组合成整个搜索结果提供给所述用户,并在内存中将组合得到的整个搜索结果针对该搜索关键词保存。
内存中缓存的数据,可以基于最近最少使用(Least Recently Used,LRU)算法来缓存。但由于内存的存储空间是有限制的,为了避免内存被完全占用,可以设置内存中缓存的整个搜索结果的数量阈值。该数量阈值可以根据每个整个搜索结果的平均数据量以及内存的存储空间大小来确定。
图3为本发明实施例二提供的一种搜索结果提供过程,该过程包括以下步骤:
S301:搜索引擎接收用户输入的搜索关键词。
S302:判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果,其中所述缓存包括:内存、redis数据库和couchbase数据库,如果是,进行S303,否则,进行S304。
S303:将缓存中的整个搜索结果提供给所述用户。
S304:获取所述搜索关键词对应的每条搜索结果的标识信息。
S305:根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果,将每个搜索结果组合成整个搜索结果提供给所述用户。
S306:判断当前内存中保存的整个搜索结果的数量是否达到设定阈值,如果是,该搜索结果提供过程结束,否则,进行S307。
S307:在内存中将组合得到的整个搜索结果针对该搜索关键词保存,并将当前该内存中保存的整个搜索结果的数量加1。
每个整个搜索结果在内存中的存储时长可以固定,例如都为20s,或者1天等,当将每个整个搜索结果缓存到内存中时,启动该整个搜索结果缓存定时器,当其定时器到时时,发送存储时间到期的信息。或者也可以按照设定的间隔,根据内存中每个整个搜索结果对应的存储时长,判断该整个搜索结果的存储时间是否到期;如果是,在内存中删除该整个搜索结果,并将该数量减少1。
图4为本发明实施例三提供的一种搜索结果提供过程,该过程包括以下步骤:
S401:搜索引擎接收用户输入的搜索关键词。
S402:判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果,其中所述缓存包括:内存、redis数据库和couchbase数据库,如果是,进行S403,否则,进行S404。
S403:将缓存中的整个搜索结果提供给所述用户。
S404:获取所述搜索关键词对应的每条搜索结果的标识信息。
S405:根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果,将每个搜索结果组合成整个搜索结果提供给所述用户。
具体的,在缓存中获取的为该标识信息对应的每个详细信息。
S406:判断当前内存中保存的整个搜索结果的数量是否达到设定阈值,如果否,进行S408,如果是,进行S407。
S407:在内存中将组合得到的整个搜索结果针对该搜索关键词保存,并将当前该内存中保存的整个搜索结果的数量加1。
S408:针对内存中存储的每个整个搜索结果,根据该整个搜索结果对应的存储时长,判断该整个搜索结果的存储时间是否到期,如果是,进行S409,否则,继续进行S408。
S409:在内存中删除该整个搜索结果,并将内存中保存的整个搜索结果的数量减少1。
为了保证提供搜索结果的效率,在本发明实施例中可以根据redis数据库和couchbase数据库是否异常,调整内存中缓存的每个整个搜索结果的存储时长,具体的包括:
当满足检测条件时,判断redis数据库和couchbase数据库是否运行正常;
当redis数据库和couchbase数据库中至少一个异常时,按照设定的时长增量,增加内存中每个整个搜索结果的存储时长。
其中,满足检测条件可以是当前接收到进行检测的指令,或者设定的时间间隔到来时等。判断redis数据库和couchbase数据库是否运行正常,可以是向redis数据库或couchbase数据库发送请求,当redis数据库或couchbase数据库对该请求的响应超时时,认为当前该redis数据库或couchbase数据库异常。
当检测到redis数据库和couchbase数据库中的至少一个异常时,可以按照设定的时长增量,在默认时长的基础上,增加每个整个搜索结果在内存中的存储时长。之后如果再检测到redis数据库和couchbase数据库中的至少一个异常时,可以按照设定的时长增量,增加每个整个搜索结果在内存中的存储时长。当检测到redis数据库和couchbase数据库正常后,将内存中每个整个搜索结果的存储时长恢复为默认时长。该默认时长可以是每个整个搜索结果在内存中存储的最短时长。
图5为本发明实施例四提供的一种搜索结果提供过程,该过程包括以下步骤:
S501:搜索引擎接收用户输入的搜索关键词。
S502:判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果,其中所述缓存包括:内存、redis数据库和couchbase数据库,如果是,进行S503,否则,进行S504。
S503:将缓存中的整个搜索结果提供给所述用户。
S504:获取所述搜索关键词对应的每条搜索结果的标识信息。
S505:根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个详细信息,将每个详细信息组合成整个搜索结果提供给所述用户。
在该步骤之后还可以包括:判断当前内存中保存的整个搜索结果的数量是否达到设定阈值,当未达到设定阈值时,在内存中将组合得到的整个搜索结果针对该搜索关键词保存,并将当前该内存中保存的整个搜索结果的数量加1。并且,可以针对内存中存储的每个整个搜索结果,根据该整个搜索结果对应的存储时长,判断该整个搜索结果的存储时间是否到期,当某一整个搜索结果的存储时间到期时,在内存中删除该整个搜索结果,并将内存中保存的整个搜索结果的数量减少1。
S506:判断redis数据库和couchbase数据库中的至少一个是否运行异常,如果是,进行S507,否则,进行S508。
S507:按照设定的时长增量,增加内存中每个整个搜索结果的存储时长。
S508:将内存中每个整个搜索结果的存储时长恢复为默认时长。
由于在本发明实施例中可以根据redis数据库和couchbase数据库的状况,灵活的调整内存中每个整个搜索结果的存储时长,因此可以进一步保证为用户提供搜索结果的效率,降低搜索引擎的性能。
图6为本发明实施例提供的一种搜索结果提供装置结构示意图,所述装置包括:
接收模块61,用于接收用户输入的搜索关键词;
缓存模块62,用于缓存搜索结果;所述缓存模块包括:内存621、redis数据库622和couchbase数据库623;
判断模块63,用于判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果;
第一提供模块64,用于当判断模块判断为是时,将所述整个搜索结果提供给所述用户;
第二提供模块65,用于当判断模块判断为否时,获取所述搜索关键词对应的每条搜索结果的标识信息,根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果,将每个搜索结果组合成整个搜索结果提供给所述用户;
所述内存621,用于针对该搜索关键词保存组合得到的整个搜索结果。
所述判断模块63,还用于判断当前内存中保存的整个搜索结果的数量是否达到设定阈值;判断该数量未达到时,将该数量增加1;
所述内存621,具体用于当判断模块判断该数量未达到时,针对该搜索关键词保存组合得到的整个搜索结果。
所述判断模块63,还用于针对每个整个搜索结果,根据内存中该整个搜索结果对应的存储时长,判断该整个搜索结果的存储时间是否到期;当判断结果为是时,将该数量减少1;
所述装置还包括:
删除模块66,用于当判断模块判断整个搜索结果的存储时间到期时,删除内存621中该整个搜索结果。
所述判断模块63,还用于在当前满足检测条件时,判断redis数据库和couchbase数据库是否运行正常;
所述内存621,还用于当判断模块判断redis数据库和couchbase数据库中至少一个异常时,按照设定的时长增量,增加内存中每个整个搜索结果的存储时长,当判断模块判断redis数据库和couchbase数据库都正常时,将内存中每个整个搜索结果的存储时长恢复为默认时长。
所述第二提供模块65,还用于获取该每条搜索结果的存储位置信息;根据所述存储位置信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果。
本发明实施例公开了一种搜索结果提供方法及装置,该方法包括:根据用户输入的搜索关键词,判断缓存中存在该关键词对应的整个搜索结果时,将该整个搜索结果提供给用户,否则,获取该搜索关键词对应的每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个详细信息,将每个详细信息组合成整个搜索结果提供给用户,并在内存中保存该组合得到的整个搜索结果。由于在本发明实施例中搜索结果保存在了内存、redis数据库或couchbase数据库中,通过多级缓存为用户提供整个搜索结果,从而提高用户获取搜索结果的效率,并降低了搜索引擎的处理能力,提高了搜索引擎的处理性能。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种搜索结果提供方法,其特征在于,所述方法包括:
搜索引擎接收用户输入的搜索关键词;
判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果;
如果是,将所述整个搜索结果提供给所述用户;
否则,获取所述搜索关键词对应的每条搜索结果的标识信息,根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的搜索结果,将每个搜索结果组合成整个搜索结果提供给所述用户,并在内存中将组合得到的整个搜索结果针对该搜索关键词保存。
2.如权利要求1所述的方法,其特征在于,所述在内存中将组合得到的整个搜索结果针对该搜索关键词保存之前,所述方法还包括:
判断当前内存中保存的整个搜索结果的数量是否达到设定阈值;
当未达到时,将该数量增加1,并进行后续保存步骤。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
针对每个整个搜索结果,根据内存中该整个搜索结果对应的存储时长,判断该整个搜索结果的存储时间是否到期;
如果是,在内存中删除该整个搜索结果,并将该数量减少1。
4.如权利要求1所述的方法,其特征在于,所述获取所述搜索关键词对应的每条搜索结果的标识信息还包括:
获取该每条搜索结果的存储位置信息;
所述从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果包括:
根据所述存储位置信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果。
5.如权利要求1~4任一项所述的方法,其特征在于,所述方法还包括:
当满足检测条件时,判断redis数据库和couchbase数据库是否运行正常;
当redis数据库和couchbase数据库中至少一个异常时,按照设定的时长增量,增加内存中每个整个搜索结果的存储时长;
否则,将内存中每个整个搜索结果的存储时长恢复为默认时长。
6.如权利要求1所述的方法,其特征在于,所述判断当前缓存中是否存在该搜索关键词对应的整个搜索结果;如果是,将缓存中的整个搜索结果提供给所述用户包括:
判断内存中是否存在该搜索关键词对应的整个搜索结果;
如果是,将内存中的整个搜索结果提供给所述用户;
否则,判断redis数据库是否存在该搜索关键词对应的整个搜索结果;
如果是,将该整个搜索结果提供给所述用户;
否则,判断couchbase数据库是否存在该搜索关键词对应的整个搜索结果;
如果是,将该整个搜索结果提供给所述用户。
7.如权利要求6所述的方法,其特征在于,所述判断couchbase数据库是否存在该搜索关键词对应的整个搜索结果包括:
将所述搜索关键词发送到局域网内其他设备;
判断局域网内其他设备的couchbase数据库是否存在该搜索关键词对应的整个搜索结果。
8.一种搜索结果提供装置,其特征在于,所述装置包括:
接收模块,用于接收用户输入的搜索关键词;
缓存模块,用于缓存搜索结果;所述缓存模块包括:内存、redis数据库和couchbase数据库;
判断模块,用于判断当前内存或redis数据库和couchbase数据库中是否存在该搜索关键词对应的整个搜索结果;
第一提供模块,用于当判断模块判断为是时,将所述整个搜索结果提供给所述用户;
第二提供模块,用于当判断模块判断为否时,获取所述搜索关键词对应的每条搜索结果的标识信息,根据所述每条搜索结果的标识信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果,将每个搜索结果组合成整个搜索结果提供给所述用户;
所述内存,用于针对该搜索关键词保存组合得到的整个搜索结果。
9.如权利要求8所述的装置,其特征在于,所述判断模块,还用于判断当前内存中保存的整个搜索结果的数量是否达到设定阈值;判断该数量未达到时,将该数量增加1;
所述内存,具体用于当判断模块判断该数量未达到时,针对该搜索关键词保存组合得到的整个搜索结果。
10.如权利要求9所述的装置,其特征在于,所述判断模块,还用于针对每个整个搜索结果,根据内存中该整个搜索结果对应的存储时长,判断该整个搜索结果的存储时间是否到期;当判断结果为是时,将该数量减少1;
所述装置还包括:
删除模块,用于当判断模块判断整个搜索结果的存储时间到期时,删除内存中该整个搜索结果。
11.如权利要求8所述的装置,其特征在于,所述判断模块,还用于在当前满足检测条件时,判断redis数据库和couchbase数据库是否运行正常;
所述内存,还用于当判断模块判断redis数据库和couchbase数据库中至少一个异常时,按照设定的时长增量,增加内存中每个整个搜索结果的存储时长,当判断模块判断redis数据库和couchbase数据库都正常时,将内存中每个整个搜索结果的存储时长恢复为默认时长。
12.如权利要求8~11任一项所述的装置,其特征在于,所述第二提供模块,还用于获取该每条搜索结果的存储位置信息;根据所述存储位置信息,从内存或redis数据库或couchbase数据库中获取该标识信息对应的每个搜索结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510219892.9A CN104794228B (zh) | 2015-04-30 | 2015-04-30 | 一种搜索结果提供方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510219892.9A CN104794228B (zh) | 2015-04-30 | 2015-04-30 | 一种搜索结果提供方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104794228A CN104794228A (zh) | 2015-07-22 |
CN104794228B true CN104794228B (zh) | 2018-04-13 |
Family
ID=53559020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510219892.9A Active CN104794228B (zh) | 2015-04-30 | 2015-04-30 | 一种搜索结果提供方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104794228B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106447250A (zh) * | 2016-07-11 | 2017-02-22 | 石莉 | 国内物流数据查询方法及系统 |
CN106202581B (zh) * | 2016-08-30 | 2019-06-14 | 北京奇艺世纪科技有限公司 | 一种数据搜索方法及装置 |
CN106484814A (zh) * | 2016-09-23 | 2017-03-08 | 珠海格力电器股份有限公司 | 数据搜索方法及装置 |
CN106682197B (zh) * | 2016-12-29 | 2020-02-11 | 北京奇艺世纪科技有限公司 | 一种搜索缓存更新方法及装置 |
CN107291923B (zh) * | 2017-06-29 | 2020-03-27 | 北京京东尚科信息技术有限公司 | 信息处理方法和装置 |
CN108520051A (zh) * | 2018-04-04 | 2018-09-11 | 湖南蚁坊软件股份有限公司 | 一种提升Apache Lucene修饰符搜索性能的方法 |
CN110472004B (zh) * | 2019-08-23 | 2022-07-08 | 国网山东省电力公司电力科学研究院 | 一种科技情报数据多级缓存管理的方法及系统 |
CN113254893B (zh) * | 2020-02-13 | 2023-09-19 | 百度在线网络技术(北京)有限公司 | 一种身份校验方法、装置、电子设备及存储介质 |
CN112330910B (zh) * | 2020-11-10 | 2022-06-21 | 中消云(北京)物联网科技研究院有限公司 | 用于火灾预警的信息处理方法、装置、存储介质和处理器 |
CN113158002A (zh) * | 2021-04-28 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 搜索方法、装置、电子设备和存储介质 |
CN115794892B (zh) * | 2023-01-09 | 2023-05-23 | 北京创新乐知网络技术有限公司 | 基于分层缓存的搜索方法、装置、设备及介质 |
CN115905323B (zh) * | 2023-01-09 | 2023-08-18 | 北京创新乐知网络技术有限公司 | 适用于多种搜索策略的搜索方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539918A (zh) * | 2008-03-19 | 2009-09-23 | 天下互联(北京)科技有限公司 | 一种互联网搜索方法及系统 |
CN102915380A (zh) * | 2012-11-19 | 2013-02-06 | 北京奇虎科技有限公司 | 用于对数据进行搜索的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9588978B2 (en) * | 2013-09-30 | 2017-03-07 | International Business Machines Corporation | Merging metadata for database storage regions based on overlapping range values |
-
2015
- 2015-04-30 CN CN201510219892.9A patent/CN104794228B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539918A (zh) * | 2008-03-19 | 2009-09-23 | 天下互联(北京)科技有限公司 | 一种互联网搜索方法及系统 |
CN102915380A (zh) * | 2012-11-19 | 2013-02-06 | 北京奇虎科技有限公司 | 用于对数据进行搜索的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104794228A (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104794228B (zh) | 一种搜索结果提供方法及装置 | |
CN104679778B (zh) | 一种搜索结果的生成方法及装置 | |
EP2885731B1 (en) | Search infrastructure | |
US9342614B2 (en) | Asymmetric identification of interest twins in an online community | |
US9507821B2 (en) | Mail indexing and searching using hierarchical caches | |
US10891229B2 (en) | Multi-level caching method and multi-level caching system for enhancing graph processing performance | |
CN107122410A (zh) | 一种缓存更新方法及装置 | |
KR102195836B1 (ko) | 인덱스 관리 방법 | |
CA2570556A1 (en) | System and method for maintaining objects in a lookup cache | |
CN104778271A (zh) | 一种视频数据的缓存方法及装置 | |
CN105183873A (zh) | 恶意点击行为检测方法及装置 | |
CN108108089A (zh) | 一种图片加载方法及装置 | |
CN107103011A (zh) | 终端数据搜索的实现方法和装置 | |
CN107301215A (zh) | 一种搜索结果缓存方法及装置、搜索方法及装置 | |
CN114780530A (zh) | 基于lsm树键值分离的时序数据存储方法及系统 | |
US20080155465A1 (en) | Identifying items that have experienced recent interest bursts | |
US20110218991A1 (en) | System and method for automatic detection of needy queries | |
CN101783797A (zh) | 一种告警推送的方法和服务器 | |
CN106164874A (zh) | 多核系统中数据访问者目录的访问方法及设备 | |
CN106933974A (zh) | 一种视频文件索引信息的构建和查询方法及装置 | |
CN103020186A (zh) | 一种基于嵌入式设备的文件检索方法、装置以及设备 | |
CN105488166A (zh) | 一种索引建立方法及装置 | |
CN114265828A (zh) | 行迁移消除方法、装置、计算机设备和存储介质 | |
CN107368532A (zh) | 一种用户代理字段信息处理方法和系统 | |
CN103365897A (zh) | 一种支持Bigtable数据模型的片段缓存方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |