《一种搜索引擎空间占用统计方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种搜索引擎空间占用统计方法及系统.pdf(9页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103631930 A (43)申请公布日 2014.03.12 CN 103631930 A (21)申请号 201310655028.4 (22)申请日 2013.12.06 G06F 17/30(2006.01) (71)申请人 北京京东尚科信息技术有限公司 地址 100080 北京市海淀区苏州街20号2号 楼 2 层 申请人 北京京东世纪贸易有限公司 (72)发明人 宋恒 (74)专利代理机构 北京德琦知识产权代理有限 公司 11018 代理人 牛峥 王丽琴 (54) 发明名称 一种搜索引擎空间占用统计方法及系统 (57) 摘要 本发明公开了一种搜索引擎空间占。
2、用统计方 法, 该方法包括 : 预先为每一用户保存对应的用 户容量占用列表, 所述用户容量占用列表包括用 户信息及对应的容量配额信息 ; 其中, 容量配额 信息包括该用户允许使用容量和已占用容量 ; 接 收用户的索引创建请求, 所述索引创建请求包含 用户信息和需要创建索引的内容 ; 根据所述用户 信息查找到对应的用户容量占用列表 ; 对该次需 要创建索引的内容进行分析统计, 获取该次需要 创建索引的内容的存储空间占用量 ; 根据该次需 要创建索引的内容的存储空间占用量对所述已占 用容量进行累加, 更新该用户的已占用容量。 本发 明还公开了一种搜索引擎空间占用统计系统。采 用本发明能够分用户进行。
3、相应的容量管理。 (51)Int.Cl. 权利要求书 2 页 说明书 5 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书5页 附图1页 (10)申请公布号 CN 103631930 A CN 103631930 A 1/2 页 2 1. 一种搜索引擎空间占用统计方法, 其特征在于, 该方法包括 : 预先为每一用户保存对应的用户容量占用列表, 所述用户容量占用列表包括用户信息 及对应的容量配额信息 ; 其中, 容量配额信息包括该用户允许使用容量和已占用容量 ; 接收用户的索引创建请求, 所述索引创建请求包含用户信息和需要创建索引的内容 ; 根。
4、据所述用户信息查找到对应的用户容量占用列表 ; 对该次需要创建索引的内容进行分析统计, 获取该次需要创建索引的内容的存储空间 占用量 ; 根据该次需要创建索引的内容的存储空间占用量对所述已占用容量进行累加, 更新该 用户的已占用容量。 2. 如权利要求 1 所述的方法, 其特征在于, 接收到用户的索引创建请求之后, 该方法进 一步包括 : 根据所述索引创建请求创建索引 ; 所述创建索引的方法包括分词, 然后保存需 要创建索引的内容。 3. 如权利要求 1 所述的方法, 其特征在于, 该方法进一步包括 : 根据用户的注册, 为用 户配置相应的用户容量占用列表, 并保存所述用户容量占用列表。 4.。
5、 如权利要求 1 所述的方法, 其特征在于, 根据该次需要创建索引的内容的存储空间 占用量对所述已占用容量进行累加, 实时更新该用户的已占用容量。 5. 如权利要求 1 所述的方法, 其特征在于, 根据该次需要创建索引的内容的存储空间 占用量对所述已占用容量进行累加, 定期更新该用户的已占用容量。 6. 如权利要求 5 所述的方法, 其特征在于, 预先为用户容量占用列表设置累加阀值和 时间阀值, 当需要创建索引的内容的存储空间占用量达到累加阀值或者时间阀值, 则更新 所述用户容量占用列表的已占用容量。 7. 如权利要求 1 所述的方法, 其特征在于, 对该次需要创建索引的内容进行精确统计, 获。
6、取中文字符和英文字符的数量, 按照中文字符和英文字符各自对应的字节长度进行转换 累加, 得到该次需要创建索引的内容的存储空间占用量。 8. 如权利要求 1 所述的方法, 其特征在于, 对该次需要创建索引的内容进行模糊统计, 预先设定该次需要创建索引的内容的中英文权重, 根据所述中英文权重, 获取中英文字节 长度和, 得到该次需要创建索引的内容的存储空间占用量。 9. 一种搜索引擎空间占用统计系统, 包括 : 数据库模块, 用于预先为每一用户保存对应的用户容量占用列表, 所述用户容量占用 列表包括用户信息及对应的容量配额信息 ; 其中, 容量配额信息包括该用户允许使用容量 和已占用容量 ; 代理。
7、模块, 用于接收用户的索引创建请求, 所述索引创建请求包含用户信息和需要创 建索引的内容 ; 根据所述用户信息查找到对应的用户容量占用列表 ; 对该次需要创建索引的内容进行分析统计, 获取该次需要创建索引的内容的存储空间 占用量 ; 根据该次需要创建索引的内容的存储空间占用量对所述已占用容量进行累加, 更新该 用户的已占用容量。 10. 如权利要求 9 所述的系统, 其特征在于, 该系统进一步包括 : 权 利 要 求 书 CN 103631930 A 2 2/2 页 3 搜索引擎模块, 用于根据所述索引创建请求创建索引 ; 所述创建索引的方法包括分词, 然后保存需要创建索引的内容。 11. 如。
8、权利要求 9 所述的系统, 其特征在于, 该系统进一步包括 : 管理模块, 用于根据用户的注册, 为用户配置相应的用户容量占用列表, 并保存所述用 户容量占用列表至数据库模块。 12. 如权利要求 9 所述的系统, 其特征在于, 所述代理模块进一步包括 : 接收子模块, 用于接收用户的索引创建请求, 所述索引创建请求包含用户信息和需要 创建索引的内容 ; 查找子模块, 用于根据所述用户信息查找到对应的用户容量占用列表 ; 统计子模块, 用于对该次需要创建索引的内容进行分析统计, 获取该次需要创建索引 的内容的存储空间占用量 ; 更新存储子模块, 用于根据该次需要创建索引的内容的存储空间占用量对。
9、所述已占用 容量进行累加, 更新该用户的已占用容量。 权 利 要 求 书 CN 103631930 A 3 1/5 页 4 一种搜索引擎空间占用统计方法及系统 技术领域 0001 本发明涉及搜索引擎技术领域, 特别涉及一种搜索引擎空间占用统计方法及系 统。 背景技术 0002 在互联网飞速发展的今天, 用户对以搜索引擎技术为基础的各种服务已经有了强 烈的需求。例如日志服务, 例如云搜索等服务。例如, 用户可以把自己写的文章, 或者某些 程序产生的日志流和数据流发送到搜索引擎建索引, 然后可以通过文章或日志里面的词汇 进行搜索查询。 这些服务都是搭建在云端或者某个大集群上, 然后开放给个人用户,。
10、 某些公 司或者社会团体。 根据用户分级的不同, 用户享受的各种资源也不同, 例如其中最重要的资 源便是容量资源。要进行存储容量分级限容, 必须要统计某个用户已经在搜索引擎中建的 索引内容的大小。但是, 问题是, 在以 lucene 为基础的搜索引擎中, 所有用户的数据都是按 照搜索引擎的存储算法, 汇总存储在 .tis, .tii 等文件中, 即所有用户的数据都是按照一 定的算法打散后存储在各个文件中, 没有办法直接获取某个用户已经占用了多大的存储容 量, 所以也没有办法按照容量来进行资源限制。 发明内容 0003 本发明的目的在于提供一种搜索引擎空间占用统计方法和系统, 能够分用户进行 相。
11、应的容量管理。 0004 为实现上述发明目的, 本发明提供了一种搜索引擎空间占用统计方法, 该方法包 括 : 0005 预先为每一用户保存对应的用户容量占用列表, 所述用户容量占用列表包括用 户信息及对应的容量配额信息 ; 其中, 容量配额信息包括该用户允许使用容量和已占用容 量 ; 0006 接收用户的索引创建请求, 所述索引创建请求包含用户信息和需要创建索引的内 容 ; 0007 根据所述用户信息查找到对应的用户容量占用列表 ; 0008 对该次需要创建索引的内容进行分析统计, 获取该次需要创建索引的内容的存储 空间占用量 ; 0009 根据该次需要创建索引的内容的存储空间占用量对所述已占。
12、用容量进行累加, 更 新该用户的已占用容量。 0010 为实现上述发明目的, 本发明还提供了一种搜索引擎空间占用统计系统, 包括 : 0011 数据库模块, 用于预先为每一用户保存对应的用户容量占用列表, 所述用户容量 占用列表包括用户信息及对应的容量配额信息 ; 其中, 容量配额信息包括该用户允许使用 容量和已占用容量 ; 0012 代理模块, 用于接收用户的索引创建请求, 所述索引创建请求包含用户信息和需 说 明 书 CN 103631930 A 4 2/5 页 5 要创建索引的内容 ; 0013 根据所述用户信息查找到对应的用户容量占用列表 ; 0014 对该次需要创建索引的内容进行分析。
13、统计, 获取该次需要创建索引的内容的存储 空间占用量 ; 0015 根据该次需要创建索引的内容的存储空间占用量对所述已占用容量进行累加, 更 新该用户的已占用容量。 0016 综上所述, 本发明实施例在外部用户需要往搜索引擎模块创建一条索引的时候, 将该次需要创建索引的数据内容先发往代理模块, 在代理模块里统计该次需要创建索引的 数据内容占用的内存大小, 并进行流量累加等其他处理工作, 更新数据库模块中的用户容 量占用列表, 然后再把该次需要创建索引的数据内容发往搜索引擎模块建索引。不再像现 有技术那样, 直接把该次需要创建索引的数据内容发往搜索引擎模块建索引。通过本发明 的方案, 为作为互联。
14、网服务对外提供服务的搜索引擎提供了一种容量占用量统计的可能, 对每一条需要创建索引的数据流的流量进行了统计, 针对性的分用户进行相应的容量管 理, 能够准确且方便地获取某个用户已使用的存储容量来进行限容, 从而对非法无节制发 创建索引的数据流的恶意用户进行了限制。 附图说明 0017 图 1 为本发明实施例搜索引擎空间占用统计方法的流程示意图。 0018 图 2 为本发明具体实施例中应用于上述方法的搜索引擎空间占用统计系统的结 构示意图。 具体实施方式 0019 为使本发明的目的、 技术方案及优点更加清楚明白, 以下参照附图并举实施例, 对 本发明所述方案作进一步地详细说明。 0020 本发明。
15、的核心思想是 : 对用户每次需要创建索引的数据内容占用的内存大小进行 统计, 针对性的分用户进行相应的容量管理, 能够准确且方便地获取某个用户已使用的存 储容量来进行限容, 从而对非法无节制发创建索引的数据流的恶意用户进行了限制。 0021 本发明实施例提供了一种搜索引擎空间占用统计方法, 其流程示意图如图 1 所 示, 该方法包括 : 0022 步骤 11、 预先为每一用户保存对应的用户容量占用列表, 所述用户容量占用列表 包括用户信息及对应的容量配额信息 ; 其中, 容量配额信息包括该用户允许使用容量和已 占用容量 ; 0023 步骤 12、 接收用户的索引创建请求, 所述索引创建请求包含。
16、用户信息和需要创建 索引的内容 ; 0024 步骤 13、 根据所述用户信息查找到对应的用户容量占用列表 ; 0025 该步骤用于进行信息检索, 从而进行用户合法性验证, 只有查找到对应的用户容 量占用列表, 才能进行后续的统计步骤。 0026 步骤 14、 对该次需要创建索引的内容进行分析统计, 获取该次需要创建索引的内 容的存储空间占用量 ; 说 明 书 CN 103631930 A 5 3/5 页 6 0027 具体地, 针对不同的生产环境, 有精确统计和模糊统计两种做法 : 0028 其中, 精确统计方法适用于索引创建倾情压力较小的生产场景 : 对该次需要创建 索引的内容进行精确统计,。
17、 获取中文字符和英文字符的数量, 按照中文字符和英文字符各 自对应的字节长度进行转换累加, 得到该次需要创建索引的内容的存储空间占用量。 例如, 索引创建请求中携带的需要创建索引的内容为 “2013/06/11 13:12:11 user 张三 login” , 这是某些程序产生的日志流的其中一个日志条目, 按照英文占一个字节, 中文占两个字节, 空格也占一个字节, 累加该日志条目得到该次需要创建索引的内容的存储空间占用量为 35 个字节。 0029 模糊统计方法适用于云日志这种高并发创建索引, 性能压力很大的场景。在性能 压力很大的情况下, 并不太适合逐个字符去分析需要创建索引的文本内容。 。
18、因此, 对该次需 要创建索引的内容进行模糊统计, 预先设定该次需要创建索引的内容的中英文权重, 根据 所述中英文权重, 获取中英文字节长度和, 得到该次需要创建索引的内容的存储空间占用 量。例如, 用户 a 需要模糊统计, 一般情况下, a 的中文权重是 30, 那么, 用户 a 的数据流 内容, 可以按照 30的中文和 70的英文进行统计, 得到该次请求需要创建索引的数据流 的存储空间占用量。其中, 中英文权重可以根据具体应用和实际情况实时进行动态调整。 0030 还有一种情况, 有些日志的内容, 一般都是以英文为主, 所以可以直接获取需要创 建索引的文本内容的字符串长度, 按照英文算出存储。
19、占用量即可。 0031 步骤 15、 根据该次需要创建索引的内容的存储空间占用量对所述已占用容量进行 累加, 更新该用户的已占用容量。 0032 其中, 更新该用户的已占用容量可以分为实时更新和定时更新两种。 0033 更新之后的用户已占用容量就会存入数据库模块, 即数据持久化。但是一般作为 一个对外提供服务的互联网应用, 接入的用户和应用数量巨大, 实时持久化会容易会导致 数据库瓶颈。所以, 需要在搜索引擎空间占用统计系统的数据库模块中维护一个用户容量 占用列表, 预先为用户容量占用列表设置累加阀值和时间阀值, 当需要创建索引的内容的 存储空间占用量达到累加阀值或者时间阀值, 则更新所述用户。
20、容量占用列表的已占用容 量。举例来说, 把某个用户单次过来的请求量, 累加维护到这个用户容量占用列表里面, 当 达到系统设置的累加阀值 5 兆, 就开始持久化。例如第一次请求量为 1 兆, 第二次请求量为 2 兆, 第三次请求量为 3 兆, 每次请求量先暂存在代理模块的内存中, 当累加的值为 6 兆, 已 经超过了累加阀值 5 兆, 就开始持久化。而且, 还应该设置一个时间阀值, 例如每隔半小时 去把用户容量占用列表里面的数据全部持久化。通过对累加阀值和时间阀值的合理设置, 就能做到相对准确且准实时的数据持久化, 就算代理模块出现错误当机了, 损失的数据也 所占的比例也极小。上述所提及的数据库。
21、模块、 代理模块等会在后续的系统中详细介绍。 0034 优选地, 接收到用户的索引创建请求之后, 该方法进一步包括 : 根据所述索引创建 请求创建索引 ; 所述创建索引的方法包括分词, 然后保存需要创建索引的内容。其中, 根据 索引创建请求创建索引的过程仍然保留现有技术, 在此不再赘述。 0035 优选地, 在步骤 11 中, 为每一用户保存对应的用户容量占用列表, 其中, 用户容量 占用列表是根据用户的注册, 为用户配置而成的。 0036 基于同样的发明构思, 本发明还提出一种搜索引擎空间占用统计系统, 参见图 2, 图 2 为本发明具体实施例中应用于上述方法的搜索引擎空间占用统计系统的结构。
22、示意图。 说 明 书 CN 103631930 A 6 4/5 页 7 图中每一个模块都是由多个服务器组成, 即每一个模块都是一个服务器集群。该搜索引擎 空间占用统计系统包括 : 0037 数据库模块 201, 用于预先为每一用户保存对应的用户容量占用列表, 所述用户容 量占用列表包括用户信息及对应的容量配额信息 ; 其中, 容量配额信息包括该用户允许使 用容量和已占用容量 ; 0038 代理模块 202, 用于接收用户的索引创建请求, 所述索引创建请求包含用户信息和 需要创建索引的内容 ; 0039 根据所述用户信息查找到对应的用户容量占用列表 ; 0040 对该次需要创建索引的内容进行分析。
23、统计, 获取该次需要创建索引的内容的存储 空间占用量 ; 0041 根据该次需要创建索引的内容的存储空间占用量对所述已占用容量进行累加, 更 新该用户的已占用容量。 0042 优选地, 该系统进一步包括 : 0043 搜索引擎模块 203, 用于根据所述索引创建请求创建索引 ; 所述创建索引的方法 包括分词, 然后保存需要创建索引的内容。 0044 优选地, 该系统进一步包括 : 0045 管理模块 204, 用于根据用户的注册, 为用户配置相应的用户容量占用列表, 并保 存所述用户容量占用列表至数据库模块 201。 0046 进一步地, 所述代理模块 202 进一步包括 : 0047 接收子。
24、模块 2201, 用于接收用户的索引创建请求, 所述索引创建请求包含用户信 息和需要创建索引的内容 ; 0048 具体地, 该接收子模块设有服务接口, 例如 HTTP 接口, 从服务接口可以接收到用 户的索引创建请求。 0049 查找子模块 2202, 用于根据所述用户信息查找到对应的用户容量占用列表 ; 0050 统计子模块 2203, 用于对该次需要创建索引的内容进行分析统计, 获取该次需要 创建索引的内容的存储空间占用量 ; 0051 更新存储子模块 2204, 用于根据该次需要创建索引的内容的存储空间占用量对所 述已占用容量进行累加, 更新该用户的已占用容量。 0052 为清楚说明本发。
25、明, 下面列举具体场景对本发明的方法及系统进行详细说明, 整 个数据流程和业务流程如下 : 0053 1) 首先, 用户接入 : 0054 搜索作为一个开放的服务, 但是肯定不是谁都能随便使用。用户 A 通过管理模块 注册, 成为合法的用户。在注册的同时, 管理模块会按照运营规则, 为用户 A 分配一个允许 使用容量, 例如 200MB, 并把用户信息以及允许使用容量信息初始化到数据库模块保存。这 里, 数据库模块中保存的是用户容量占用列表, 用户容量占用列表中包括用户 A 信息及对 应的容量配额信息, 其中, 容量配额信息包括该用户允许使用容量和已占用容量。 本实施例 中用户 A 允许使用容。
26、量为 200MB, 由于初始状态用户注册之后还没有发送索引创建请求, 所 以已占用容量为 0。 0055 2) 用户发送索引创建请求到代理模块 : 说 明 书 CN 103631930 A 7 5/5 页 8 0056 成为合法用户之后, 即可使用搜索引擎的服务。例如用户 A, 现在有一个在运行的 程序, 需要输出日志。由于搜索引擎能够提供若干便捷强大的功能, 例如按照关键字快速 定位到某一行日志、 对日志内容提供分析等功能, 用户 A 调用代理模块提供的接口, 在一条 日志条目携带在索引创建请求中被输出的时候, 就把该条日志条目的数据流发送到代理模 块。例如该条条目的内容为 :“2013/0。
27、6/11 13:12:11 user 张三 login” 。 0057 代理模块接收到该条日志条目的数据流后, 从请求信息里面获取出该条数据流是 来自于用户 A, 然后从对应的用户容量占用列表里的用户信息以及容量配额信息里面匹配 出用户 A 的限额以及已使用量。同时, 针对生产环境, 采用相应的统计方法, 分析统计该条 日志条目的数据流的字符串长度。 0058 如 1) 所说, 用户在注册的时候, 已经被分配了配额, 代理模块在启动时, 会从数据 库模块里加载 (读取) 用户信息以及对应的容量配额信息 (允许使用容量和已占用容量) 到 内存, 形成一个键值对的数据结构。 启动后, 每隔一段时间。
28、, 会重新加载一次, 载入新增的信 息。 而且, 代理模块在统计出该条日志条目的数据流的字符串长度, 得到此次需要创建索引 的内容的存储空间占用量后, 会对数据库模块中的已占用容量进行累加更新。由此可以看 出, 代理模块与数据库模块之间是双向交互。 0059 3) 索引创建请求经过代理模块到达搜索引擎模块, 搜索引擎模块根据所述索引创 建请求创建索引。 0060 需要说明的是, 本发明实施例中用户的索引创建请求只需要发送一次, 经过代理 模块, 到达搜索引擎模块, 这样, 用户要进入搜索引擎模块建索引, 必须经过代理模块对每 一条需要创建索引的数据流的流量进行统计, 不会发生遗漏统计的现象。 。
29、0061 本发明搜索引擎空间占用统计方法及系统, 会带来如下好处 : 0062 一、 在搜索引擎模块前端增加代理模块, 在这个代理模块对用户单次索引创建请 求中的文本内容所占存储空间进行统计和累加, 实现了分用户容量管理, 可以根据不同用 户进行相应资源限制。 0063 二、 针对不同的生产场景, 提供了精确统计和模糊统计两种统计方案, 进一步节省 了统计资源。 0064 三、 统计结果持久化时, 折中了性能需求和实时性需求, 用累加阀值和时间阀值作 为持久化触发点, 从而避免了实时持久化导致的数据库瓶颈的出现。 0065 以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保护范围。 凡在 本发明的精神和原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。 说 明 书 CN 103631930 A 8 1/1 页 9 图 1 图 2 说 明 书 附 图 CN 103631930 A 9 。