CN110909266B - 深度分页的方法、装置及服务器 - Google Patents
深度分页的方法、装置及服务器 Download PDFInfo
- Publication number
- CN110909266B CN110909266B CN201911167346.XA CN201911167346A CN110909266B CN 110909266 B CN110909266 B CN 110909266B CN 201911167346 A CN201911167346 A CN 201911167346A CN 110909266 B CN110909266 B CN 110909266B
- Authority
- CN
- China
- Prior art keywords
- search
- sequence number
- preset
- interval
- search results
- 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
Images
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/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供的一种深度分页的方法、装置及服务器。其中,一种深度分页的方法,应用于服务器,在接收到客户端发送的原始搜索请求时,获取原始搜索请求对应的页码以及搜索条件;基于页码和预设的单页数量,获取页码对应的目标页面中搜索结果的序号信息;从属于搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围;基于搜索条件和所查找到的时间范围,向分布式搜索引擎发送处理后的搜索请求,并基于分布式搜索引擎返回的满足处理后的搜索请求的第二候选搜索结果以及预设排序规则,获取目标搜索结果。通过本方案可以提高利用分布式搜索引擎的深度分页中,目标搜索结果的确定效率。
Description
技术领域
本发明涉及数据搜索技术领域,特别是涉及一种深度分页的方法、装置及服务器。
背景技术
为了方便按页码查看搜索结果,搜索引擎需要对搜索结果进行分页。例如,利用某一搜索引擎搜索“高考”,搜索结果的数量为100个,分页时单个页面中搜索结果的数量为10个。此时,如果用户请求第1页的搜索结果,搜索引擎可以按预设排序规则对100个搜索结果进行排序,并将排在前10位的搜索结果作为第1页的目标搜索结果,返回给用户,并丢弃其余搜索结果。
相关技术中,为了应对海量数据,分布式搜索引擎利用多个分片存储索引实现对数据的分布式搜索。具体的,当接收到搜索请求时,分布式搜索引擎的每个分片会按照自身存储的索引进行搜索,并对搜索结果进行排序,返回序号为第一位至用户所请求页码中最后一位的搜索结果给管理服务器;进而管理服务器将多个分片返回的全部搜索结果进行排序,并将序号属于用户所请求页码的目标搜索结果,返回给用户。
但是,在搜索结果数量相对而言较大的深度分页中,上述分布式搜索引擎的每个分片返回大量的搜索结果,导致管理服务器对各分片返回的全部搜索结果进行排序时,排序对象的数量相对而言很大,排序的时间成本大幅增加,确定目标搜索结果的效率下降。举例而言,分页时每一页的搜索结果数量为10个,搜索引擎存在5个分片;当用户请求第1000页的搜索结果时,每个分片返回序号为第1位至第10010位的搜索结果给服务器;进而服务器对5个分片返回的全部50050个搜索结果排序后,才能确定出序号属于用户所请求页码的目标搜索结果:序号为第10001位到10010位的搜索结果,排序的时间成本大幅增加,目标搜索结果返回效率大幅降低。
发明内容
本发明实施例的目的在于提供一种深度分页的方法、装置及服务器,以实现提高利用分布式搜索引擎的深度分页中,目标搜索结果的确定效率的效果。
具体技术方案如下:
第一方面,本发明实施例提供了一种深度分页的方法,应用于服务器,该方法包括:
在接收到客户端发送的原始搜索请求时,获取所述原始搜索请求对应的页码以及搜索条件;
基于所述页码和预设的单页数量,获取所述页码对应的目标页面中搜索结果的序号信息;其中,所述预设的单页数量为单个页面中搜索结果的数量;所述序号信息为关于所述目标页面中的搜索结果,按预设排序规则排序后的序号的信息;
从属于所述搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围;任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围;所述第一候选搜索结果为符合所述搜索条件、且排序规则为所述预设排序规则的搜索结果;
基于所述搜索条件和所查找到的时间范围,向所述分布式搜索引擎发送处理后的搜索请求,并基于所述分布式搜索引擎返回的满足所述处理后的搜索请求的第二候选搜索结果以及所述预设排序规则,获取目标搜索结果。
可选的,所述第一候选搜索结果的数量大于所述预设的单页数量;
所述从属于所述搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围,包括:
从预存的序号信息与区间标识的对应关系中,查找所获取的序号信息对应的区间标识;任一区间标识为利用各所述第一候选搜索结果的序号确定的序号区间的标识;
从属于所述搜索条件的预存的区间标识与时间范围的对应关系中,查找所获取的区间标识对应的时间范围;
所述基于所述分布式搜索引擎返回的满足所述处理后的搜索请求的第二候选搜索结果以及所述预设排序规则,获取目标搜索结果,包括:
按照所述预设排序规则对所述第二候选搜索结果进行排序,得到排序后的第二候选搜索结果;
将排序后的第二候选搜索结果中,序号信息与所述目标页面中搜索结果的序号信息相同的第二候选搜索结果,确定为目标搜索结果。
可选的,所述区间标识为所述序号区间的上限;所述页码对应的目标页面中搜索结果的序号信息,具体为所述页码对应的目标页面中搜索结果的最大序号;
在所述获取所述原始搜索请求对应的页码以及搜索条件之后,所述方法还包括:
获取符合所述搜索条件的搜索结果的总数;
所述预存的序号信息与区间标识的对应关系,包括:
当所述最大序号小于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述最大序号的所述序号区间的区间标识;
当所述最大序号大于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述总数的所述序号区间的区间标识。
可选的,所述获取符合所述搜索条件的搜索结果的总数,包括:
对所述搜索条件进行散列计算,得到所述搜索条件的散列值;
从预存的散列值与搜索结果的总数的对应关系中,查找所述搜索条件的散列值对应的搜索结果的总数,作为符合所述搜索条件的搜索结果的总数。
可选的,属于不同搜索条件的预存的区间标识与时间范围的对应关系的建立方式,包括如下步骤:
按照预设周期,获取用于构建搜索条件的多个预设字段,并对所述多个预设字段进行排列组合,得到多个搜索条件;
针对所述多个搜索条件,获取符合该搜索条件、且排序规则为所述预设排序规则的搜索结果,并对该搜索条件对应的所获取的搜索结果,进行如下处理:
将所述所获取的搜索结果,按照指定数量划分为多个搜索结果集合,并利用每个搜索结果集合中搜索结果的序号,确定该搜索结果集合对应的序号区间;
针对所述多个搜索结果集合,将该搜索结果集合中序号为第一位和最后一位的搜索结果写入所述分布式搜索引擎的写入时间,记录为属于该搜索条件的时间范围,并将该搜索结果集合对应的序号区间的区间标识,记录为与所述属于该搜索条件的时间范围对应的区间标识。
可选的,所述按照预设周期,获取用于构建搜索条件的多个预设字段,包括:
按照预设周期,从搜索条件配置文件中,读取用于构建搜索条件的多个预设字段;
所述方法还包括:
在检测到新的预设字段时,将所述新的预设字段添加至所述搜索条件配置文件中。
第二方面,本发明实施例提供了一种深度分页的装置,应用于服务器,该装置包括:
搜索参数获取模块,用于在接收到客户端发送的原始搜索请求时,获取所述原始搜索请求对应的页码以及搜索条件;
序号信息获取模块,用于基于所述页码和预设的单页数量,获取所述页码对应的目标页面中搜索结果的序号信息;其中,所述预设的单页数量为单个页面中搜索结果的数量;所述序号信息为关于所述目标页面中的搜索结果,按预设排序规则排序后的序号的信息;
时间范围查找模块,用于从属于所述搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围;任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围;所述第一候选搜索结果为符合所述搜索条件、且排序规则为所述预设排序规则的搜索结果;
搜索结果获取模块,用于基于所述搜索条件和所查找到的时间范围,向所述分布式搜索引擎发送处理后的搜索请求,并基于所述分布式搜索引擎返回的满足所述处理后的搜索请求的第二候选搜索结果以及所述预设排序规则,获取目标搜索结果。
可选的,所述第一候选搜索结果的数量大于所述预设的单页数量;
所述时间范围查找模块,具体用于:
从预存的序号信息与区间标识的对应关系中,查找所获取的序号信息对应的区间标识;任一区间标识为利用各所述第一候选搜索结果的序号确定的序号区间的标识;
从属于所述搜索条件的预存的区间标识与时间范围的对应关系中,查找所获取的区间标识对应的时间范围;
所述搜索结果获取模块,具体用于:
按照所述预设排序规则对所述第二候选搜索结果进行排序,得到排序后的第二候选搜索结果;
将排序后的第二候选搜索结果中,序号信息与所述目标页面中搜索结果的序号信息相同的第二候选搜索结果,确定为目标搜索结果。
可选的,所述区间标识为所述序号区间的上限;所述页码对应的目标页面中搜索结果的序号信息,具体为所述页码对应的目标页面中搜索结果的最大序号;
所述装置还包括:总数获取模块,用于在所述获取所述原始搜索请求对应的页码以及搜索条件之后,获取符合所述搜索条件的搜索结果的总数;
所述预存的序号信息与区间标识的对应关系,包括:
当所述最大序号小于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述最大序号的所述序号区间的区间标识;
当所述最大序号大于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述总数的所述序号区间的区间标识。
可选的,所述总数获取模块,具体用于:
对所述搜索条件进行散列计算,得到所述搜索条件的散列值;
从预存的散列值与搜索结果的总数的对应关系中,查找所述搜索条件的散列值对应的搜索结果的总数,作为符合所述搜索条件的搜索结果的总数。
可选的,所述装置还包括对应关系建立模块,用于建立供所述时间范围查找模块使用的属于不同搜索条件的预存的区间标识与时间范围的对应关系;所述对应关系建立模块,具体用于:
按照预设周期,获取用于构建搜索条件的多个预设字段,并对所述多个预设字段进行排列组合,得到多个搜索条件;
针对所述多个搜索条件,获取符合该搜索条件、且排序规则为所述预设排序规则的搜索结果,并对该搜索条件对应的所获取的搜索结果,进行如下处理:
将所述所获取的搜索结果,按照指定数量划分为多个搜索结果集合,并利用每个搜索结果集合中搜索结果的序号,确定该搜索结果集合对应的序号区间;
针对所述多个搜索结果集合,将该搜索结果集合中序号为第一位和最后一位的搜索结果写入所述分布式搜索引擎的写入时间,记录为属于该搜索条件的时间范围,并将该搜索结果集合对应的序号区间的区间标识,记录为与所述属于该搜索条件的时间范围对应的区间标识。
可选的,所述对应关系建立模块,包括:字段读取子模块和字段添加子模块;
所述字段读取子模块,用于按照预设周期,从搜索条件配置文件中,读取用于构建搜索条件的多个预设字段;
所述字段添加子模块,用于在检测到新的预设字段时,将所述新的预设字段添加至所述搜索条件配置文件中。
第三方面,本发明实施例提供了一种服务器,该服务器包括:
处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第一方面提供的深度分页的方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的深度分页的方法的步骤。
本发明提供的方案中,预设的单页数量为单个页面中搜索结果的数量,序号信息为关于页码对应的目标页面中的搜索结果,按预设排序规则排序后的序号的信息;因此,服务器基于页码和预设的单页数量,可以获取页码对应的目标页面中搜索结果的序号信息。并且,任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围,第一候选搜索结果为符合搜索条件、且排序规则为预设排序规则的搜索结果;因此,在从属于述搜索条件的预存的序号信息与时间范围的对应关系中,查找到的所获取的序号信息对应的时间范围中,存在目标搜索结果写入搜索引擎的写入时间。在此基础上,分布式搜索引擎返回给服务器的满足处理后的搜索请求的第二候选结果,为写入时间属于所查找到的时间范围、且符合搜索条件的搜索结果,从而保证服务器获取目标搜索结果时,可以基于第二候选搜索结果以及预设排序规则获取。与直接向分布式搜索引擎发送原始搜索请求,并基于分布式搜索引擎返回的满足搜索条件的搜索结果以及预设排序规则获取目标搜索结果相比,相对而言可以通过所查找到的时间范围减少服务器需要排序的搜索结果的数量,从而提高利用分布式搜索引擎的深度分页中,目标搜索结果的确定效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一实施例提供的深度分页的方法的流程示意图;
图2为本发明另一实施例提供的深度分页的方法的流程示意图;
图3为本发明一实施例提供的深度分页的装置的结构示意图;
图4为本发明另一实施例提供的深度分页的装置的结构示意图;
图5为本发明一实施例提供的服务器的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明一实施例的深度分页的方法进行介绍。
本发明实施例提供的深度分页的方法,可以应用于服务器,该服务器具体可以包括台式计算机、便携式计算机、互联网电视,智能移动终端以及可穿戴式智能终端等等,在此不作限定,任何可以作为服务器的电子设备,均可作为实现本发明实施例的服务器,均属于本发明实施例的保护范围。
如图1所示,本发明一实施例的深度分页的方法的流程,该方法可以包括如下步骤:
S101,在接收到客户端发送的原始搜索请求时,获取原始搜索请求对应的页码以及搜索条件。
其中,获取原始搜索请求对应的页码以及搜索条件的方式具体可以是多种的。示例性的,当原始搜索请求中携带有页码以及搜索条件时,可以从原始搜索请求中读取页码以及搜索条件。或者,示例性的,当页码以及搜索条件为与原始搜索请求共同发送的独立信息时,可以直接接收与原始搜索请求对应的页码以及搜索条件。
并且,搜索条件具体可以是多种的。示例性的,搜索条件可以包括:关于搜索结果的关键字,搜索结果写入分布式搜索引擎的写入时间以及创建者等等用于筛选搜索结果的信息。任何搜索条件均可用于本发明,本实施例对此不作限制。
S102,基于页码和预设的单页数量,获取页码对应的目标页面中搜索结果的序号信息。其中,预设的单页数量为单个页面中搜索结果的数量;序号信息为关于目标页面中的搜索结果,按预设排序规则排序后的序号的信息。
在具体应用中,对应于不同的具体的序号信息,基于页码和预设的单页数量,获取页码对应的目标页面中搜索结果的序号信息的方式,具体可以是多种的。示例性的,当序号信息为目标页面中搜索结果的序号区间时,基于页码和预设的单页数量,获取页码对应的目标页面中搜索结果的序号信息,可以包括:获取目标页面中搜索结果的最大序号:预设的单页数量×页码,以及目标页面中搜索结果的最小序号:最大序号-预设的单页数量+1;将最小序号作为搜索结果的序号区间的下限值,将最大序号作为搜索结果的序号区间的上限值。或者,示例性的,当序号信息为目标页面中搜索结果的最大序号时,基于页码和预设的单页数量,获取页码对应的目标页面中搜索结果的序号信息,可以包括:将预设的单页数量和页码乘积,作为目标页面中搜索结果的最大序号。
举例而言,预设的单页数量为10个,页码为第10页,第10页中的10个搜索结果按照任意预设排序规则排序后,第10页中搜索结果的最大序号=10×10=100,第10页中搜索结果的最小序号=100-10+1=91。此时,序号信息可以为序号区间[99,100],或者,序号信息可以为100。并且,当序号信息为100时,可以不获取最小序号。
S103,从属于搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围。任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围;第一候选搜索结果为符合搜索条件、且排序规则为预设排序规则的搜索结果。
在具体应用中,不同的搜索条件存在不同的第一候选结果,不同序号信息对应的第一候选结果写入分布式搜索引擎的写入时间不同,产生不同的时间范围。因此,需要从属于搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围,以保证后续能够利用所查找到的时间范围准确确定目标搜索结果。并且,为了获取第一候选搜索结果写入分布式搜索引擎的写入时间的范围,可以按照历史经验,和/或者用户的历史搜索条件,确定用于获取第一候选搜索结果的搜索条件,进而获取将符合搜索条件、且排序规则为预设排序规则的搜索结果写入分布式搜索引擎的写入时间,从而统计得到所获取的写入时间的范围,作为该搜索条件对应的时间范围。
并且,序号信息与时间范围的对应关系具体可以是多种的。示例性的,序号信息与时间范围的对应关系可以包括:序号信息与时间范围直接对应的第一关系。例如,序号信息SN1与时间范围[t1,t2]对应。或者,示例性的,序号信息与时间范围的对应关系可以包括:序号信息与时间范围间接对应的第二关系。例如,序号信息SN1与区间标识IM1对应,区间标识IM1与时间范围[t1,t2]对应。其中,区间标识为包含多个序号信息的序号区间的标识,因此,第二关系可以通过序号信息与区间标识的对应,建立不同页码对应的不同序号信息与同一时间范围的对应关系,与第一关系相比,可以减少对相对而言较少使用的序号信息与时间范围的对应关系的存储,所造成的信息冗余。为了合理布局和便于理解,后续在本发明图2实施例中对第二种示例性说明进行详细描述。
另外,分布式搜索引擎可以是多种的。举例而言,分布式搜索引擎具体可以包括:ElasticSearch搜索引擎以及Solr搜索引擎。其中,ElasticSearch为能够达到实时搜索的分布式搜索引擎,具有稳定,可靠,快速一级安装方便的特点。Solr搜索引擎是一个高性能,采用Java开发,基于Lucene(全文搜索引擎)的分布式搜索引擎。
S104,基于搜索条件和所查找到的时间范围,向分布式搜索引擎发送处理后的搜索请求,并基于分布式搜索引擎返回的满足处理后的搜索请求的第二候选搜索结果以及预设排序规则,获取目标搜索结果。
在具体应用中,基于搜索条件和所查找到的时间范围,向分布式搜索引擎发送处理后的搜索请求,具体可以为多种。示例性的,可以将搜索条件和所查找到的时间范围,构建为搜索请求,得到处理后的搜索请求;或者,当原始搜索请求中未携带搜索条件时,将搜索条件和所查找到的时间范围添加至原始搜索请求中,得到处理后的搜索请求;或者,当原始搜索请求中携带搜索条件时,将所查找到的时间范围添加至原始搜索请求中,得到处理后的搜索请求。
并且,基于分布式搜索引擎返回的满足处理后的搜索请求的第二候选搜索结果以及预设排序规则,获取目标搜索结果,具体可以为多种。示例性的,当第一候选搜索结果的数量等于预设的单页数量时,所查找到的时间范围即页码对应的目标页面中搜索结果的时间范围;并且,满足处理后的搜索请求的第二候选搜索结果满足搜索条件。因此,可以按照预设排序规则对第二候选搜索结果进行排序,得到目标搜索结果。或者,示例性的,当第一候选搜索结果的数量大于预设的单页数量时,页码对应的目标页面中搜索结果的时间范围为所查找到的时间范围的子集;并且,满足处理后的搜索请求的第二候选搜索结果满足搜索条件。因此,可以按照预设排序规则对第二候选搜索结果进行排序,得到排序后的第二候选搜索结果;进而将排序后的第二候选搜索结果中,序号信息与目标页面中搜索结果的序号信息相同的第二候选搜索结果,确定为目标搜索结果。为了合理布局和便于理解,后续在本发明图2实施例中对第二种示例性说明进行具体描述。
本发明提供的方案中,预设的单页数量为单个页面中搜索结果的数量,序号信息为关于页码对应的目标页面中的搜索结果,按预设排序规则排序后的序号的信息;因此,服务器基于页码和预设的单页数量,可以获取页码对应的目标页面中搜索结果的序号信息。并且,任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围,第一候选搜索结果为符合搜索条件、且排序规则为预设排序规则的搜索结果;因此,在从属于述搜索条件的预存的序号信息与时间范围的对应关系中,查找到的所获取的序号信息对应的时间范围中,存在目标搜索结果写入搜索引擎的写入时间。在此基础上,分布式搜索引擎返回给服务器的满足处理后的搜索请求的第二候选结果,为写入时间属于所查找到的时间范围、且符合搜索条件的搜索结果,从而保证服务器获取目标搜索结果时,可以基于第二候选搜索结果以及预设排序规则获取。与直接向分布式搜索引擎发送原始搜索请求,并基于分布式搜索引擎返回的满足搜索条件的搜索结果以及预设排序规则获取目标搜索结果相比,相对而言可以通过所查找到的时间范围减少服务器需要排序的搜索结果的数量,从而提高利用分布式搜索引擎的深度分页中,目标搜索结果的确定效率。
如图2所示,本发明另一实施例的深度分页的方法的流程,该方法可以包括:
S201,在接收到客户端发送的原始搜索请求时,获取原始搜索请求对应的页码以及搜索条件。
S202,基于页码和预设的单页数量,获取页码对应的目标页面中搜索结果的序号信息。
上述S201至S202与本发明图1实施例的S101至S102为相同的步骤,在此不再赘述,详见上述本发明图1实施例的描述。
S203,从预存的序号信息与区间标识的对应关系中,查找所获取的序号信息对应的区间标识;任一区间标识为利用各第一候选搜索结果的序号确定的序号区间的标识;第一候选搜索结果为符合搜索条件、且排序规则为预设排序规则的搜索结果;第一候选搜索结果的数量大于预设的单页数量。
其中,第一候选搜索结果与本发明图1实施例中的第一候选搜索结果相似,区别在于步骤S203中第一候选搜索结果的数量大于预设的单页数量,以便利用各第一候选搜索结果的序号确定的序号区间覆盖目标页面对应的序号信息以及与目标页面的页码不同的其他页面对应的序号信息。对于相同部分在此不再赘述,详见上述本发明图1实施例的描述。并且,预存的序号信息与区间标识的对应关系具体可以为多种的。示例性的,预存的序号信息与区间标识的对应关系可以为目标页面中搜索结果的序号区间与区间标识的对应关系。或者,示例性的,预存的序号信息与区间标识的对应关系可以为目标页面中搜索结果的最大序号与区间标识的对应关系。为了合理布局和便于理解,后续以可选实施例的形式对第二种示例性描述进行具体说明。
S204,从属于搜索条件的预存的区间标识与时间范围的对应关系中,查找所获取的区间标识对应的时间范围。任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围。
在具体应用中,预存的区间标识与时间范围的对应关系可以存储在服务器中,或者关系型数据库中,或者非关系型数据库中。并且,存储在关系型数据库例如Mysql数据库中时,可以减少对服务器资源的占用,并通过关系型数据库持久化的特点保证预存的区间标识与时间范围的对应关系的稳定性,通过关系型数据库的查询语言简单的特点,提高时间范围的获取效率。
S205,基于搜索条件和所查找到的时间范围,向分布式搜索引擎发送处理后的搜索请求,并按照预设排序规则对第二候选搜索结果进行排序,得到排序后的第二候选搜索结果。
上述S205中关于发送处理后的搜索请求的内容与本发明图1实施例的S104中关于发送处理后的搜索请求的内容相同,在此不再赘述,详见上述本发明图1实施例的描述。并且,由于第一搜索结果的数量大于预设的单页数量,因此,满足处理后的搜索请求的第二候选搜索结果中,存在与目标页面的页码不同的其他页面的搜索结果。对此,为了获得目标搜索结果,需要按照预设排序规则对第二候选搜索结果进行排序,得到排序后的第二候选搜索结果,以便后续通过步骤S206从排序后的第二候选搜索结果中,确定目标搜索结果。
S206,将排序后的第二候选搜索结果中,序号信息与目标页面中搜索结果的序号信息相同的第二候选搜索结果,确定为目标搜索结果。
排序后的第二候选搜索结果中,序号信息与目标页面中搜索结果的序号信息相同的第二候选搜索结果,为目标页面中的搜索结果,因此,可以确定为目标搜索结果。
示例性的,预设的单页数量为10个,第二候选搜索结果包括第1页至第5页的搜索结果,目标页面为第4页,按照预设排序规则对第二候选搜索结果排序后,可以得到第二候选搜索结果在第1页至第5页中的序号信息:第1位至第50位。在此基础上,第4页中搜索结果的序号信息为第31位至第40位,第二候选搜索结果中序号信息为第31位至第40位的搜索结果即为第4页的搜索结果,可以确定为目标搜索结果。
上述图2实施例,第一候选搜索结果的数量大于预设的单页数量,因此,可以保证利用第一候选搜索结果的序号确定的序号区间,覆盖目标页面对应的序号信息以及与目标页面的页码不同的其他页面对应的序号信息,进而通过利用第一候选搜索结果的序号确定的序号区间的区间标识与时间范围的对应,建立不同页码对应的不同序号信息与同一时间范围的对应关系,从而减少对相对而言较少使用的序号信息与时间范围的对应关系的存储,所造成的信息冗余。
可选的,上述区间标识为利用各第一候选搜索结果的序号确定的序号区间的上限;上述页码对应的目标页面中搜索结果的序号信息,具体为页码对应的目标页面中搜索结果的最大序号;
相应的,在上述获取所述原始搜索请求对应的页码以及搜索条件之后,本发明实施例提供的深度分页的方法,还可以包括如下步骤:
获取符合搜索条件的搜索结果的总数;
相应的,上述预存的序号信息与区间标识的对应关系,具体可以包括:
当最大序号小于搜索结果的总数时,与序号信息对应的区间标识为上限小于或者等于最大序号的序号区间的区间标识;
当最大序号大于搜索结果的总数时,与序号信息对应的区间标识为上限小于或者等于搜索结果的总数的序号区间的区间标识。
在具体应用中,使用利用各第一候选搜索结果的序号确定的序号区间的上限作为上述区间标识时,可以利用所获取的搜索结果的总数,或者该总数和序号信息确定区间标识,与将仅为标记形式的数据,例如“第十批”作为区间标识相比,可以节省将序号信息和利用各第一候选搜索结果的序号确定的序号区间进行比较的过程,从而无需记录利用各第一候选搜索结果的序号确定的序号区间,节约存储成本。
在此基础上,具体为页码对应的目标页面中搜索结果的最大序号的序号信息,很可能与序号标识不同。举例而言,搜索结果的总数为196,预设的单页数量为10个时,计算得到的最后一页的序号信息为200。但是,利用各第一候选搜索结果的序号确定的序号区间的区间标识为196,与计算的序号信息不同。因此,预存的序号信息与区间标识的对应关系,具体可以包括:当最大序号小于搜索结果的总数时,与序号信息对应的区间标识为上限小于或者等于最大序号的序号区间的区间标识;当最大序号大于搜索结果的总数时,与序号信息对应的区间标识为上限小于或者等于搜索结果的总数的序号区间的区间标识。由此,当搜索结果的总数为196时,可以准确确定区间标识为196,而不是200。
并且,获取符合搜索条件的搜索结果的总数的方式具体可以是多种的。下面以可选实施例的形式进行具体说明:
在一种可选的实施方式中,获取符合搜索条件的搜索结果的总数,可以包括如下步骤:
统计符合搜索条件的搜索结果的数量,得到符合搜索条件的搜索结果的总数。
在另一种可选的实施方式中,上述获取符合搜索条件的搜索结果的总数,可以包括如下步骤:
对搜索条件进行散列计算,得到搜索条件的散列值;
从预存的散列值与搜索结果的总数的对应关系中,查找搜索条件的散列值对应的搜索结果的总数,作为符合搜索条件的搜索结果的总数。
在具体应用中,对搜索条件进行散列计算具体可以包括将搜索条件输入哈希模型或者MD5(Message Digest Algorithm MD5,信息摘要算法)模型中。并且,预存的散列值与搜索结果的总数的对应关系具体可以预先保存在键值存储数据库中,例如Redis数据库中,以提高查找搜索条件的散列值对应的搜索结果的总数的效率。
另外,如果从预存的散列值与搜索结果的总数的对应关系中,没有查找到搜索条件的散列值对应的搜索结果的总数,可以统计符合搜索条件的搜索结果的数量,并将未查找到总数的散列值作为键,相应的所统计的总数作为值,存储至键值存储数据库中的散列值与搜索结果的总数的对应关系中。
可选的,属于不同搜索条件的预存的区间标识与时间范围的对应关系的建立方式,具体可以包括如下步骤:
按照预设周期,获取用于构建搜索条件的多个预设字段,并对多个预设字段进行排列组合,得到多个搜索条件;
针对多个搜索条件,获取符合该搜索条件、且排序规则为预设排序规则的搜索结果,并对该搜索条件对应的所获取的搜索结果,进行如下处理:
将所获取的搜索结果,按照指定数量划分为多个搜索结果集合,并利用每个搜索结果集合中搜索结果的序号,确定该搜索结果集合对应的序号区间;
针对多个搜索结果集合,将该搜索结果集合中序号为第一位和最后一位的搜索结果写入分布式搜索引擎的写入时间,记录为属于该搜索条件的时间范围,并将该搜索结果集合对应的序号区间的区间标识,记录为与属于该搜索条件的时间范围对应的区间标识。
示例性的,多个搜索条件包括搜索条件SC1和搜索条件SC2。针对搜索条件SC1,获取的符合该搜索条件SC1、且排序规则为预设排序规则的搜索结果为1005个,指定数量为100。此时,可以将1005个搜索结果划分为11个搜索结果集合,其中前10个搜索结果集合中搜索结果的数量为10个,最后一个搜索结果集合中搜索结果的数量为5个。将每个搜索结果集合中各搜索结果的序号的范围,作为该搜索结果集合对应的序号区间。例如,第一个搜索结果集合对应的序号区间为[1,100],该序号区间的区间标识为100,最后一个搜索结果集合对应的序号区间为[1001,1005],该序号区间的区间标识为1005。如果在符合搜索条件SC1的1005个搜索结果中,第1位搜索结果的写入时间为T1,第100位搜索结果的写入时间为T2,第1001位搜索结果的写入时间为T21,第1005位搜索结果的写入时间为T22,则属于搜索条件SC1的预存的区间标识与时间范围的对应关系可以包括:区间标识100与时间范围[T1,T2]对应,区间标识1005与时间范围[T21,T22]对应。
类似的,可以采用相同的方式,针对搜索条件SC1对应的第2个至第10个搜索结果集合,获得相应的区间标识和时间范围的对应关系;并且,可以采用相同的方式,获得属于搜索条件SC2的预存的区间标识与时间范围的对应关系,在此不再赘述,详见上述属于搜索条件SC1的预存的区间标识与时间范围的对应关系的获取的描述。
在本可选实施例中,通过按照预设周期获取多个搜索条件和相应的搜索结果的写入时间,可以建立属于不同搜索条件的预存的区间标识与时间范围的对应关系,从而尽可能实现原始搜索请求对应的搜索条件和页码,能够查找到相应的时间范围,提高本发明实施例的适用范围。
可选的,上述述按照预设周期,获取用于构建搜索条件的多个预设字段,具体可以包括如下步骤:
按照预设周期,从搜索条件配置文件中,读取用于构建搜索条件的多个预设字段;
相应的,本发明实施例提供的深度分页的方法,还可以包括如下步骤:
在检测到新的预设字段时,将新的预设字段添加至搜索条件配置文件中。
在具体应用中,在检测到新的预设字段时,将新的预设字段添加至搜索条件配置文件中的步骤,可以在上述按照预设周期,从搜索条件配置文件中,读取用于构建搜索条件的多个预设字段的步骤之前,或者之后执行,本实施例对该步骤的执行顺序不作限制。并且,新的预设字段的检测方式,可以为接收用户输入的新的预设字段,或者,从历史搜索条件中,提取与当前搜索条件配置文件中的预设字段不同的字段,作为新的预设字段。另外,预设周期具体可以按照使用需求进行设置,当预设周期越短,本实施例的时间范围所覆盖的搜索结果越多,适用范围越广。举例而言,在搜索购物订单的应用场景中,用户提交购物订单的时间为20:00,当用户在20:03搜索已提交购物订单时,如果预设周期为1分钟,可以保证预存的区间标识与时间范围的对应关系中,存在该购物订单的写入时间所属的时间范围,从而提高时间范围覆盖的搜索结果的数量。
在本可选实施例中,预设字段从搜索条件配置文件中读取,从而保证可以在检测到新的预设字段时,将新的预设字段添加至搜索条件配置文件中即可实现搜索条件的增加,提高用于建立区间标识与时间范围的对应关系的搜索条件的扩展便捷性。
相应于上述方法实施例,本发明一实施例还提供了深度分页的装置。
如图3所示,本发明一实施例的深度分页的装置,应用于服务器,该装置可以包括:
搜索参数获取模块301,用于在接收到客户端发送的原始搜索请求时,获取所述原始搜索请求对应的页码以及搜索条件;
序号信息获取模块302,用于基于所述页码和预设的单页数量,获取所述页码对应的目标页面中搜索结果的序号信息;其中,所述预设的单页数量为单个页面中搜索结果的数量;所述序号信息为关于所述目标页面中的搜索结果,按预设排序规则排序后的序号的信息;
时间范围查找模块303,用于从属于所述搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围;任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围;所述第一候选搜索结果为符合所述搜索条件、且排序规则为所述预设排序规则的搜索结果;
搜索结果获取模块304,用于基于所述搜索条件和所查找到的时间范围,向所述分布式搜索引擎发送处理后的搜索请求,并基于所述分布式搜索引擎返回的满足所述处理后的搜索请求的第二候选搜索结果以及所述预设排序规则,获取目标搜索结果。
本发明提供的方案中,预设的单页数量为单个页面中搜索结果的数量,序号信息为关于页码对应的目标页面中的搜索结果,按预设排序规则排序后的序号的信息;因此,服务器基于页码和预设的单页数量,可以获取页码对应的目标页面中搜索结果的序号信息。并且,任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围,第一候选搜索结果为符合搜索条件、且排序规则为预设排序规则的搜索结果;因此,在从属于述搜索条件的预存的序号信息与时间范围的对应关系中,查找到的所获取的序号信息对应的时间范围中,存在目标搜索结果写入搜索引擎的写入时间。在此基础上,分布式搜索引擎返回给服务器的满足处理后的搜索请求的第二候选结果,为写入时间属于所查找到的时间范围、且符合搜索条件的搜索结果,从而保证服务器获取目标搜索结果时,可以基于第二候选搜索结果以及预设排序规则获取。与直接向分布式搜索引擎发送原始搜索请求,并基于分布式搜索引擎返回的满足搜索条件的搜索结果以及预设排序规则获取目标搜索结果相比,相对而言可以通过所查找到的时间范围减少服务器需要排序的搜索结果的数量,从而提高利用分布式搜索引擎的深度分页中,目标搜索结果的确定效率。
可选的,所述第一候选搜索结果的数量大于所述预设的单页数量;
所述时间范围查找模块303,具体用于:
从预存的序号信息与区间标识的对应关系中,查找所获取的序号信息对应的区间标识;任一区间标识为利用各所述第一候选搜索结果的序号确定的序号区间的标识;
从属于所述搜索条件的预存的区间标识与时间范围的对应关系中,查找所获取的区间标识对应的时间范围;
所述搜索结果获取模块304,具体用于:
按照所述预设排序规则对所述第二候选搜索结果进行排序,得到排序后的第二候选搜索结果;
将排序后的第二候选搜索结果中,序号信息与所述目标页面中搜索结果的序号信息相同的第二候选搜索结果,确定为目标搜索结果。
可选的,所述区间标识为所述序号区间的上限;所述页码对应的目标页面中搜索结果的序号信息,具体为所述页码对应的目标页面中搜索结果的最大序号;
所述装置还包括:总数获取模块,用于在所述获取所述原始搜索请求对应的页码以及搜索条件之后,获取符合所述搜索条件的搜索结果的总数;
所述预存的序号信息与区间标识的对应关系,包括:
当所述最大序号小于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述最大序号的所述序号区间的区间标识;
当所述最大序号大于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述总数的所述序号区间的区间标识。
可选的,所述总数获取模块,具体用于:
对所述搜索条件进行散列计算,得到所述搜索条件的散列值;
从预存的散列值与搜索结果的总数的对应关系中,查找所述搜索条件的散列值对应的搜索结果的总数,作为符合所述搜索条件的搜索结果的总数。
如图4所示,本发明另一实施例的深度分页的装置,应用于服务器,该装置可以包括:
搜索参数获取模块401,用于在接收到客户端发送的原始搜索请求时,获取所述原始搜索请求对应的页码以及搜索条件;
序号信息获取模块402,用于基于所述页码和预设的单页数量,获取所述页码对应的目标页面中搜索结果的序号信息;其中,所述预设的单页数量为单个页面中搜索结果的数量;所述序号信息为关于所述目标页面中的搜索结果,按预设排序规则排序后的序号的信息;
时间范围查找模块403,用于从属于所述搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围;任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围;所述第一候选搜索结果为符合所述搜索条件、且排序规则为所述预设排序规则的搜索结果;
搜索结果获取模块404,用于基于所述搜索条件和所查找到的时间范围,向所述分布式搜索引擎发送处理后的搜索请求,并基于所述分布式搜索引擎返回的满足所述处理后的搜索请求的第二候选搜索结果以及所述预设排序规则,获取目标搜索结果。
对应关系建立模块405,用于建立供所述时间范围查找模块403使用的属于不同搜索条件的预存的区间标识与时间范围的对应关系;所述对应关系建立模块405,具体用于:
按照预设周期,获取用于构建搜索条件的多个预设字段,并对所述多个预设字段进行排列组合,得到多个搜索条件;
针对所述多个搜索条件,获取符合该搜索条件、且排序规则为所述预设排序规则的搜索结果,并对该搜索条件对应的所获取的搜索结果,进行如下处理:
将所述所获取的搜索结果,按照指定数量划分为多个搜索结果集合,并利用每个搜索结果集合中搜索结果的序号,确定该搜索结果集合对应的序号区间;
针对所述多个搜索结果集合,将该搜索结果集合中序号为第一位和最后一位的搜索结果写入所述分布式搜索引擎的写入时间,记录为属于该搜索条件的时间范围,并将该搜索结果集合对应的序号区间的区间标识,记录为与所述属于该搜索条件的时间范围对应的区间标识。
可选的,所述对应关系建立模块405,包括:字段读取子模块和字段添加子模块;
所述字段读取子模块,用于按照预设周期,从搜索条件配置文件中,读取用于构建搜索条件的多个预设字段;
所述字段添加子模块,用于在检测到新的预设字段时,将所述新的预设字段添加至所述搜索条件配置文件中。
相应于上述实施例,本发明实施例还提供了一种服务器,如图5所示,服务器可以包括:
处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器通503过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行上述存储器503上所存放的计算机程序时,实现上述实施例中任一深度分页的方法的步骤。
本发明提供的方案中,预设的单页数量为单个页面中搜索结果的数量,序号信息为关于页码对应的目标页面中的搜索结果,按预设排序规则排序后的序号的信息;因此,服务器基于页码和预设的单页数量,可以获取页码对应的目标页面中搜索结果的序号信息。并且,任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围,第一候选搜索结果为符合搜索条件、且排序规则为预设排序规则的搜索结果;因此,在从属于述搜索条件的预存的序号信息与时间范围的对应关系中,查找到的所获取的序号信息对应的时间范围中,存在目标搜索结果写入搜索引擎的写入时间。在此基础上,分布式搜索引擎返回给服务器的满足处理后的搜索请求的第二候选结果,为写入时间属于所查找到的时间范围、且符合搜索条件的搜索结果,从而保证服务器获取目标搜索结果时,可以基于第二候选搜索结果以及预设排序规则获取。与直接向分布式搜索引擎发送原始搜索请求,并基于分布式搜索引擎返回的满足搜索条件的搜索结果以及预设排序规则获取目标搜索结果相比,相对而言可以通过所查找到的时间范围减少服务器需要排序的搜索结果的数量,从而提高利用分布式搜索引擎的深度分页中,目标搜索结果的确定效率。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离于上述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明一实施例提供的计算机可读存储介质,包含于服务器,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时,实现上述施例中任一深度分页的方法的步骤。
本发明提供的方案中,预设的单页数量为单个页面中搜索结果的数量,序号信息为关于页码对应的目标页面中的搜索结果,按预设排序规则排序后的序号的信息;因此,服务器基于页码和预设的单页数量,可以获取页码对应的目标页面中搜索结果的序号信息。并且,任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围,第一候选搜索结果为符合搜索条件、且排序规则为预设排序规则的搜索结果;因此,在从属于述搜索条件的预存的序号信息与时间范围的对应关系中,查找到的所获取的序号信息对应的时间范围中,存在目标搜索结果写入搜索引擎的写入时间。在此基础上,分布式搜索引擎返回给服务器的满足处理后的搜索请求的第二候选结果,为写入时间属于所查找到的时间范围、且符合搜索条件的搜索结果,从而保证服务器获取目标搜索结果时,可以基于第二候选搜索结果以及预设排序规则获取。与直接向分布式搜索引擎发送原始搜索请求,并基于分布式搜索引擎返回的满足搜索条件的搜索结果以及预设排序规则获取目标搜索结果相比,相对而言可以通过所查找到的时间范围减少服务器需要排序的搜索结果的数量,从而提高利用分布式搜索引擎的深度分页中,目标搜索结果的确定效率。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的深度分页的方法。
本发明提供的方案中,预设的单页数量为单个页面中搜索结果的数量,序号信息为关于页码对应的目标页面中的搜索结果,按预设排序规则排序后的序号的信息;因此,服务器基于页码和预设的单页数量,可以获取页码对应的目标页面中搜索结果的序号信息。并且,任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围,第一候选搜索结果为符合搜索条件、且排序规则为预设排序规则的搜索结果;因此,在从属于述搜索条件的预存的序号信息与时间范围的对应关系中,查找到的所获取的序号信息对应的时间范围中,存在目标搜索结果写入搜索引擎的写入时间。在此基础上,分布式搜索引擎返回给服务器的满足处理后的搜索请求的第二候选结果,为写入时间属于所查找到的时间范围、且符合搜索条件的搜索结果,从而保证服务器获取目标搜索结果时,可以基于第二候选搜索结果以及预设排序规则获取。与直接向分布式搜索引擎发送原始搜索请求,并基于分布式搜索引擎返回的满足搜索条件的搜索结果以及预设排序规则获取目标搜索结果相比,相对而言可以通过所查找到的时间范围减少服务器需要排序的搜索结果的数量,从而提高利用分布式搜索引擎的深度分页中,目标搜索结果的确定效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线)或无线(例如:红外线、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如:DVD(Digital Versatile Disc,数字通用光盘))、或者半导体介质(例如:SSD(Solid StateDisk,固态硬盘))等。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
1.一种深度分页的方法,其特征在于,应用于服务器,所述方法包括:
在接收到客户端发送的原始搜索请求时,获取所述原始搜索请求对应的页码以及搜索条件;
基于所述页码和预设的单页数量,获取所述页码对应的目标页面中搜索结果的序号信息;其中,所述预设的单页数量为单个页面中搜索结果的数量;所述序号信息为关于所述目标页面中的搜索结果,按预设排序规则排序后的序号的信息;
从属于所述搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围;任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围;所述第一候选搜索结果为符合所述搜索条件、且排序规则为所述预设排序规则的搜索结果;不同的搜索条件存在不同的第一候选结果,不同序号信息对应的第一候选结果写入所述分布式搜索引擎的写入时间不同,产生不同的时间范围;
基于所述搜索条件和所查找到的时间范围,向所述分布式搜索引擎发送处理后的搜索请求,并基于所述分布式搜索引擎返回的满足所述处理后的搜索请求的第二候选搜索结果以及所述预设排序规则,获取目标搜索结果。
2.根据权利要求1所述的方法,其特征在于,所述第一候选搜索结果的数量大于所述预设的单页数量;
所述从属于所述搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围,包括:
从预存的序号信息与区间标识的对应关系中,查找所获取的序号信息对应的区间标识;任一区间标识为利用各所述第一候选搜索结果的序号确定的序号区间的标识;
从属于所述搜索条件的预存的区间标识与时间范围的对应关系中,查找所获取的区间标识对应的时间范围;
所述基于所述分布式搜索引擎返回的满足所述处理后的搜索请求的第二候选搜索结果以及所述预设排序规则,获取目标搜索结果,包括:
按照所述预设排序规则对所述第二候选搜索结果进行排序,得到排序后的第二候选搜索结果;
将排序后的第二候选搜索结果中,序号信息与所述目标页面中搜索结果的序号信息相同的第二候选搜索结果,确定为目标搜索结果。
3.根据权利要求2所述的方法,其特征在于,所述区间标识为所述序号区间的上限;所述页码对应的目标页面中搜索结果的序号信息,具体为所述页码对应的目标页面中搜索结果的最大序号;
在所述获取所述原始搜索请求对应的页码以及搜索条件之后,所述方法还包括:
获取符合所述搜索条件的搜索结果的总数;
所述预存的序号信息与区间标识的对应关系,包括:
当所述最大序号小于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述最大序号的所述序号区间的区间标识;
当所述最大序号大于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述总数的所述序号区间的区间标识。
4.根据权利要求3所述的方法,其特征在于,所述获取符合所述搜索条件的搜索结果的总数,包括:
对所述搜索条件进行散列计算,得到所述搜索条件的散列值;
从预存的散列值与搜索结果的总数的对应关系中,查找所述搜索条件的散列值对应的搜索结果的总数,作为符合所述搜索条件的搜索结果的总数。
5.根据权利要求2至4任一项所述的方法,其特征在于,属于不同搜索条件的预存的区间标识与时间范围的对应关系的建立方式,包括如下步骤:
按照预设周期,获取用于构建搜索条件的多个预设字段,并对所述多个预设字段进行排列组合,得到多个搜索条件;
针对所述多个搜索条件,获取符合该搜索条件、且排序规则为所述预设排序规则的搜索结果,并对该搜索条件对应的所获取的搜索结果,进行如下处理:
将所述所获取的搜索结果,按照指定数量划分为多个搜索结果集合,并利用每个搜索结果集合中搜索结果的序号,确定该搜索结果集合对应的序号区间;
针对所述多个搜索结果集合,将该搜索结果集合中序号为第一位和最后一位的搜索结果写入所述分布式搜索引擎的写入时间,记录为属于该搜索条件的时间范围,并将该搜索结果集合对应的序号区间的区间标识,记录为与所述属于该搜索条件的时间范围对应的区间标识。
6.根据权利要求5所述的方法,其特征在于,所述按照预设周期,获取用于构建搜索条件的多个预设字段,包括:
按照预设周期,从搜索条件配置文件中,读取用于构建搜索条件的多个预设字段;
所述方法还包括:
在检测到新的预设字段时,将所述新的预设字段添加至所述搜索条件配置文件中。
7.一种深度分页的装置,其特征在于,应用于服务器,所述装置包括:
搜索参数获取模块,用于在接收到客户端发送的原始搜索请求时,获取所述原始搜索请求对应的页码以及搜索条件;
序号信息获取模块,用于基于所述页码和预设的单页数量,获取所述页码对应的目标页面中搜索结果的序号信息;其中,所述预设的单页数量为单个页面中搜索结果的数量;所述序号信息为关于所述目标页面中的搜索结果,按预设排序规则排序后的序号的信息;
时间范围查找模块,用于从属于所述搜索条件的预存的序号信息与时间范围的对应关系中,查找所获取的序号信息对应的时间范围;任一时间范围为将相应序号信息对应的第一候选搜索结果写入分布式搜索引擎的写入时间的范围;所述第一候选搜索结果为符合所述搜索条件、且排序规则为所述预设排序规则的搜索结果;不同的搜索条件存在不同的第一候选结果,不同序号信息对应的第一候选结果写入所述分布式搜索引擎的写入时间不同,产生不同的时间范围;
搜索结果获取模块,用于基于所述搜索条件和所查找到的时间范围,向所述分布式搜索引擎发送处理后的搜索请求,并基于所述分布式搜索引擎返回的满足所述处理后的搜索请求的第二候选搜索结果以及所述预设排序规则,获取目标搜索结果。
8.根据权利要求7所述的装置,其特征在于,所述第一候选搜索结果的数量大于所述预设的单页数量;
所述时间范围查找模块,具体用于:
从预存的序号信息与区间标识的对应关系中,查找所获取的序号信息对应的区间标识;任一区间标识为利用各所述第一候选搜索结果的序号确定的序号区间的标识;
从属于所述搜索条件的预存的区间标识与时间范围的对应关系中,查找所获取的区间标识对应的时间范围;
所述搜索结果获取模块,具体用于:
按照所述预设排序规则对所述第二候选搜索结果进行排序,得到排序后的第二候选搜索结果;
将排序后的第二候选搜索结果中,序号信息与所述目标页面中搜索结果的序号信息相同的第二候选搜索结果,确定为目标搜索结果。
9.根据权利要求8所述的装置,其特征在于,所述区间标识为所述序号区间的上限;所述页码对应的目标页面中搜索结果的序号信息,具体为所述页码对应的目标页面中搜索结果的最大序号;
所述装置还包括:总数获取模块,用于在所述获取所述原始搜索请求对应的页码以及搜索条件之后,获取符合所述搜索条件的搜索结果的总数;
所述预存的序号信息与区间标识的对应关系,包括:
当所述最大序号小于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述最大序号的所述序号区间的区间标识;
当所述最大序号大于所述总数时,与所述序号信息对应的区间标识为所述上限小于或者等于所述总数的所述序号区间的区间标识。
10.根据权利要求9所述的装置,其特征在于,所述总数获取模块,具体用于:
对所述搜索条件进行散列计算,得到所述搜索条件的散列值;
从预存的散列值与搜索结果的总数的对应关系中,查找所述搜索条件的散列值对应的搜索结果的总数,作为符合所述搜索条件的搜索结果的总数。
11.根据权利要求8至10任一项所述的装置,其特征在于,所述装置还包括对应关系建立模块,用于建立供所述时间范围查找模块使用的属于不同搜索条件的预存的区间标识与时间范围的对应关系;所述对应关系建立模块,具体用于:
按照预设周期,获取用于构建搜索条件的多个预设字段,并对所述多个预设字段进行排列组合,得到多个搜索条件;
针对所述多个搜索条件,获取符合该搜索条件、且排序规则为所述预设排序规则的搜索结果,并对该搜索条件对应的所获取的搜索结果,进行如下处理:
将所述所获取的搜索结果,按照指定数量划分为多个搜索结果集合,并利用每个搜索结果集合中搜索结果的序号,确定该搜索结果集合对应的序号区间;
针对所述多个搜索结果集合,将该搜索结果集合中序号为第一位和最后一位的搜索结果写入所述分布式搜索引擎的写入时间,记录为属于该搜索条件的时间范围,并将该搜索结果集合对应的序号区间的区间标识,记录为与所述属于该搜索条件的时间范围对应的区间标识。
12.根据权利要求11所述的装置,其特征在于,所述对应关系建立模块,包括:字段读取子模块和字段添加子模块;
所述字段读取子模块,用于按照预设周期,从搜索条件配置文件中,读取用于构建搜索条件的多个预设字段;
所述字段添加子模块,用于在检测到新的预设字段时,将所述新的预设字段添加至所述搜索条件配置文件中。
13.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现如权利要求1-6任一项所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911167346.XA CN110909266B (zh) | 2019-11-25 | 2019-11-25 | 深度分页的方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911167346.XA CN110909266B (zh) | 2019-11-25 | 2019-11-25 | 深度分页的方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110909266A CN110909266A (zh) | 2020-03-24 |
CN110909266B true CN110909266B (zh) | 2022-09-02 |
Family
ID=69819437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911167346.XA Active CN110909266B (zh) | 2019-11-25 | 2019-11-25 | 深度分页的方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110909266B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535824B (zh) * | 2021-07-27 | 2024-06-07 | 杭州海康威视数字技术股份有限公司 | 数据搜索方法、装置、电子设备及存储介质 |
CN113568940B (zh) * | 2021-08-04 | 2024-05-21 | 北京百度网讯科技有限公司 | 数据查询的方法、装置、设备以及存储介质 |
CN113886723B (zh) * | 2021-09-09 | 2024-04-12 | 盐城天眼察微科技有限公司 | 确定排序稳定性的方法和装置、以及存储介质和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100318541A1 (en) * | 2009-06-15 | 2010-12-16 | International Business Machines Corporation | Filter Range Bound Paged Search |
US20160154852A1 (en) * | 2014-11-28 | 2016-06-02 | International Business Machines Corporation | Searching in a database |
CN107818115A (zh) * | 2016-09-14 | 2018-03-20 | 苏宁云商集团股份有限公司 | 一种处理数据表的方法及装置 |
CN108228663A (zh) * | 2016-12-21 | 2018-06-29 | 杭州海康威视数字技术股份有限公司 | 一种分页检索方法及装置 |
-
2019
- 2019-11-25 CN CN201911167346.XA patent/CN110909266B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100318541A1 (en) * | 2009-06-15 | 2010-12-16 | International Business Machines Corporation | Filter Range Bound Paged Search |
US20160154852A1 (en) * | 2014-11-28 | 2016-06-02 | International Business Machines Corporation | Searching in a database |
CN107818115A (zh) * | 2016-09-14 | 2018-03-20 | 苏宁云商集团股份有限公司 | 一种处理数据表的方法及装置 |
CN108228663A (zh) * | 2016-12-21 | 2018-06-29 | 杭州海康威视数字技术股份有限公司 | 一种分页检索方法及装置 |
Non-Patent Citations (2)
Title |
---|
Applying Web Analysis in Web Page Filtering;Michael Chau;《Proceedings of the 2004 Joint ACM/IEEE Conference on Digital Libraries》;20040927;第376页 * |
视图化图书智能查询系统设计与实现;程方豪等;《软件导刊》;《中国学术期刊(光盘版)》电子杂志社;20160831;第15卷(第8期);第127-129页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110909266A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162695B (zh) | 一种信息推送的方法及设备 | |
CN108304444B (zh) | 信息查询方法及装置 | |
JP5575902B2 (ja) | クエリのセマンティックパターンに基づく情報検索 | |
CN110909266B (zh) | 深度分页的方法、装置及服务器 | |
CN102402605B (zh) | 用于搜索引擎索引的混合分布模型 | |
US9262454B2 (en) | Web page retrieval method and device | |
CN107729578B (zh) | 一种音乐推荐方法及装置 | |
JP6185379B2 (ja) | レコメンド装置およびレコメンド方法 | |
CN110727663A (zh) | 数据清洗方法、装置、设备及介质 | |
US20120239657A1 (en) | Category classification processing device and method | |
JP2018525717A (ja) | 探索処理方法およびデバイス | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN111159563A (zh) | 用户兴趣点信息的确定方法、装置、设备及存储介质 | |
CN116860825B (zh) | 一种基于区块链的可验证检索方法及系统 | |
CN111125158B (zh) | 数据表处理方法、装置、介质及电子设备 | |
CN107077509B (zh) | 一种改进浏览体验的方法、装置和设备 | |
CN113742344A (zh) | 电力系统数据的索引方法及装置 | |
CN108345699B (zh) | 获取多媒体数据的方法、装置及存储介质 | |
CN113868533A (zh) | 应用搜索方法、装置、电子设备及存储介质 | |
KR101271171B1 (ko) | 사용자가 선정한 키워드에 기반한 콘텐츠 관련정보 제공장치 및 방법 | |
CA2848996A1 (en) | Search method and information managing apparatus | |
CN112612865A (zh) | 一种基于Elasticsearch的文档存储方法和装置 | |
CN112612817A (zh) | 数据处理方法、装置、终端设备及计算机可读存储介质 | |
CN108009171B (zh) | 一种提取内容数据的方法和装置 | |
CN105159899A (zh) | 一种搜索的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |