[发明专利]针对检索结果进行分组统计的索引结构创建方法和系统有效
申请号: | 201310415438.1 | 申请日: | 2013-09-12 |
公开(公告)号: | CN104462080B | 公开(公告)日: | 2018-05-01 |
发明(设计)人: | 童征宇;董宁 | 申请(专利权)人: | 北大方正集团有限公司;北京方正阿帕比技术有限公司;方正信息产业控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京三聚阳光知识产权代理有限公司11250 | 代理人: | 寇海侠 |
地址: | 100871 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 检索 结果 进行 分组 统计 索引 结构 创建 方法 系统 | ||
技术领域
本发明涉及一种检索结果统计方法。具体地说是一种针对检索结果进行分组统计的索引结构创建方法和系统。
背景技术
在全文检索系统中,根据用户输入的检索词进行分词处理后,在倒排索引中进行检索,得到一组命中文档结果,并按照指定的规则排序,一般默认是按照检索词与命中文档的相关度排序。
在得到检索结果的同时,很多情况下需要根据命中文档的某个字段的值进行分组统计,包括根据唯一值进行分组统计,以及根据值范围进行分组统计,进而使得在对检索结果的分布得到直观的认识的同时,也方便根据分组值进一步缩小检索结果范围,这时候需要同时对多个字段分别进行分组统计。
为了满足这类检索需求,现有技术中一般对用于分组统计的字段的值进行预先处理,创建以文档为key,文档中该字段的值为value的映射关系缓存数据,一定程度上提高分组统计过程的性能。但是在实际应用中,经常会出现一个文档用于分组统计的字段的值不止一项的情况,甚至有时候一个文档对应的字段值可能有上千项。在分组统计时需要针对遍历所述映射管理表进行统计,这样遍历统计的工作量相对较大,直接导致分组统计的速度慢、效率低下。
发明内容
为此,本发明所要解决的技术问题在于现有分组统计方法对一个文档对应多个字段值统计效率低下的技术问题,从而提出一种针对检索结果进行分组统计的索引结构创建方法和系统。
为解决上述技术问题,本发明提供的技术方案如下:
一种针对检索结果进行分组统计的索引结构创建方法,包括如下步骤:
为每个检索对象分配一个唯一的对象ID;
为检索对象中用于分组统计的字段的每一个值分配一个唯一的字段值ID;
创建所述对象ID与每个字段对应的所述字段值ID的一对多的映射关系;
将N个检索对象对应的字段值ID根据所述映射关系顺序生成一个字段值ID数据块并存储;其中,N为大于1的整数,且每个所述字段值ID以定长方式存储;
为每个所述字段值ID数据块建立索引数据块并存储,所述索引数据块用于记录每个所述字段值ID数据块存储的位置,以及每个对象ID对应的字段值ID的数量。
所述的一种针对检索结果进行分组统计的索引结构创建方法中,为每个所述字段值ID数据块建立索引数据块进一步包括如下步骤:
为每个所述字段值ID数据块建立一个局部索引数据块,所述局部索引数据块包括所述字段值ID数据块在缓存中的位置,以及每个对象ID对应的字段ID的数量;
建立全局索引数据块,所述全局索引数据块用于记录每个所述局部索引数据块的起始位置。
所述的一种针对检索结果进行分组统计的索引结构创建方法中,还包括将所述索引数据块中每个对象ID对应的字段值ID的数量压缩后再存储的步骤。
所述的一种针对检索结果进行分组统计的索引结构创建方法中,通过将所述对象ID从零开始顺序编号为每个检索对象分配一个唯一的对象ID。
所述的一种针对检索结果进行分组统计的索引结构创建方法中,存储的每个对象ID对应的字段值ID的数量为每个对象ID对应的字段值ID的实际数量减一后得到。
同时,提供一种针对检索结果进行分组统计的索引结构创建系统,包括索引结构创建模块,其中,所述索引结构创建模块进一步包括:
对象ID分配模块,用于为每个检索对象分配一个唯一的对象ID;
字段值ID分配模块,用于为检索对象中用于分组统计的字段的每一个值分配一个唯一的字段值ID;
映射关系创建模块,用于创建所述对象ID与每个字段对应的所述字段值ID的一对多的映射关系;
字段值ID数据块生成模块,用于将N个检索对象的多个分组值对应的字段值ID根据所述映射关系顺序生成一个字段值ID数据块并存储;其中,N为大于1的整数,且每个所述字段值ID以定长方式存储;
索引数据块创建模块,用于为每个所述字段值ID数据块创建索引并存储,所述索引用于记录每个所述字段值ID数据块存储的位置,以及每个对象ID对应的字段值ID的数量。
所述的一种针对检索结果进行分组统计的索引结构创建系统中,所述索引数据块创建模块进一步包括:
局部索引数据块创建子模块,用于为每个所述字段值ID数据块建立一个局部索引数据块并存储,所述局部索引数据块包括所述字段值ID数据块在缓存中的位置,以及每个对象ID对应的字段值ID的数量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北大方正集团有限公司;北京方正阿帕比技术有限公司;方正信息产业控股有限公司,未经北大方正集团有限公司;北京方正阿帕比技术有限公司;方正信息产业控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310415438.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种文本文档分页处理方法和系统
- 下一篇:基于深度文档分析的主动知识指导