[发明专利]动态截断方法、装置及服务器在审
申请号: | 201710311708.2 | 申请日: | 2017-05-05 |
公开(公告)号: | CN108804477A | 公开(公告)日: | 2018-11-13 |
发明(设计)人: | 代俊 | 申请(专利权)人: | 广东神马搜索科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 马维丽 |
地址: | 510000 广东省广州市天河区黄埔大道西平云*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 截断 文档 内存 索引链 服务器 排序结果 索引 预设 排序 | ||
1.一种动态截断方法,应用于提供实时搜索服务的服务器,其特征在于,该方法包括:
对新存入内存的新入文档进行识别,获取所述新入文档的关键字;
获取所述关键字对应的索引链,将所述内存中的所有文档按照设定规则进行排序,根据排序结果选择所述索引链中预设数量的索引形成内存的截断链。
2.如权利要求1所述的动态截断方法,其特征在于,该方法还包括:
在所述内存建立一个用于存储所述截断链对应的文档的堆。
3.如权利要求2所述的动态截断方法,其特征在于,该方法还包括:
将所述新入文档的键值与所述堆的堆顶文档的键值进行比较;
若所述新入文档的键值比所述堆的堆顶文档的键值大,则用所述新入文档替换所述堆顶文档,然后对该堆中的文档进行重新排序。
4.如权利要求1-3任意一项所述的动态截断方法,其特征在于,该方法还包括:
判断所述内存存储的数据是否达到阈值;
若所述内存中的数据已经达到阈值,则将所述内存中的数据作为一个数据片段(segment)转存至磁盘中,所述数据片段包括所述内存中存储的文档、索引链及截断链。
5.如权利要求4所述的动态截断方法,其特征在于,该方法还包括:
判断所述磁盘中是否存在磁盘截断链;
若存在磁盘截断链,则将新存储至所述磁盘中的截断链与所述磁盘截断链进行合并,生成新的磁盘截断链以替换原始的磁盘截断链。
6.如权利要求5所述的动态截断方法,其特征在于,所述磁盘截断链包括所述磁盘中的预设数量的文档对应的索引。
7.如权利要求5所述的动态截断方法,其特征在于,当所述实时搜索系统接收到检索指令进行检索时,该方法还包括:
从所述磁盘中加载所述磁盘截断链到内存与该内存的截断链进行合并,得到全局截断链;
根据所述全局截断链进行检索得到检索结果。
8.一种动态截断装置,应用于提供实时搜索服务的服务器,其特征在于,该装置包括:
关键字获取模块,用于对新存入内存的新入文档进行识别,获取所述新入文档的关键字;
截断链生成模块,用于获取所述关键字对应的索引链,将所述内存中的所有文档按照设定规则进行排序,根据排序结果选择所述索引链中预设数量的索引形成内存的截断链。
9.如权利要求8所述的动态截断装置,其特征在于,该装置还包括:
堆建立模块,用于在所述内存建立一个用于存储所述截断链对应的文档的堆。
10.如权利要求9所述的动态截断装置,其特征在于,该装置还包括:
键值比较模块,用于将所述新入文档的键值与所述堆的堆顶文档的键值进行比较;
堆重排序模块,用于当所述新入文档的键值比所述堆的堆顶文档的键值大时,用所述新入文档替换所述堆顶文档,然后对该堆中的文档进行重新排序。
11.如权利要求8-10任意一项所述的动态截断装置,其特征在于,该装置还包括:
内存数据判断模块,用于判断所述内存存储的数据是否达到阈值;
数据转存模块,用于当所述内存中的数据已经达到阈值时,将所述内存中的数据作为一个数据片段(segment)转存至磁盘中,所述数据片段包括所述内存中存储的文档、索引链及截断链。
12.如权利要求11所述的动态截断装置,其特征在于,该装置还包括:
截断链判断模块,用于判断所述磁盘中是否存在磁盘截断链;
截断链合并模块,用于当存在磁盘截断链时,将新存储至所述磁盘中的截断链与所述磁盘截断链进行合并,生成新的磁盘截断链以替换原始的磁盘截断链。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东神马搜索科技有限公司,未经广东神马搜索科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710311708.2/1.html,转载请声明来源钻瓜专利网。