CN105912696A - 一种基于对数归并的dns索引创建方法及查询方法 - Google Patents
一种基于对数归并的dns索引创建方法及查询方法 Download PDFInfo
- Publication number
- CN105912696A CN105912696A CN201610262289.3A CN201610262289A CN105912696A CN 105912696 A CN105912696 A CN 105912696A CN 201610262289 A CN201610262289 A CN 201610262289A CN 105912696 A CN105912696 A CN 105912696A
- Authority
- CN
- China
- Prior art keywords
- index
- dns
- subindex
- document
- inverted
- 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.)
- Pending
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (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
本发明公开了一种基于对数归并的DNS索引创建方法及查询方法。本方法为:1)将每一DNS日志生成一文档对象,然后将各文档对象放入DNS的文档缓存中;当DNS的文档缓存耗尽时,对文档缓存中的每一文档对象进行词语切分,得到一解释文档对象;每一解释文档对象对应一索引表,该索引表包括多个索引字段,其中至少有一个索引字段作为文档ID唯一标识对应文档对象;2)在索引缓存中对索引表建立倒排索引,当索引缓存耗尽时将索引缓存中的倒排索引写入磁盘倒排索引数据库;3)对倒排索引数据库中的倒排索引进行对数归并。本发明大大提高了从海量信息中查找特定信息的效率,满足信息检索的快速响应请求。
Description
技术领域
本发明涉及一种基于对数归并的DNS索引创建方法及权威日志查询方法,属于计算机网络技术领域。
背景技术
域名系统(DNS)实现了IP地址和域名之间的转换,是互联网最关键的基础设施和其他丰富应用的基础,几乎所有基于IP网络的信息通信服务都要通过域名访问来定位相应的网络资源。CNNIC负责的域名服务器节点每天接收来自全世界各地的客户端发来的CN域名查询请求并进行解析,2014年日均查询总量约为40亿次,峰值达到160万次每秒,CN DNS权威日志中包含了时间、来源递归IP、目标域名、状态等信息。
现有的DNS日志查询主要基于hadoop集群实时处理,hadoop集群执行查询指令要翻译成MapReduce语言,整个查询过程较慢,查询效率低,不能满足业务需求。其它的开源搜索引擎在索引生成时间、索引大小和检索时间消耗等方面也不能较好地满足实际业务需求。
本发明提出基于对数归并的DNS日志索引方法,提高了从海量信息中查找特定信息的效率,满足信息检索的快速响应请求。
发明内容
为了满足从海量DNS日志中快速查找特定信息的业务需求,本发明提出了一种新的索引创建方法及查询方法,具体包括索引流程、索引结构与索引算法:
1)构建一种新的索引流程和索引结构。
2)实现一种基于对数归并的DNS索引算法。
本发明的技术方案为:
一种基于对数归并的DNS索引创建方法,其步骤为:
1)将每一DNS日志生成一文档对象,然后将各文档对象放入DNS的文档缓存中;当DNS的文档缓存耗尽时,对文档缓存中的每一文档对象进行词语切分,得到一解释文档对象;每一解释文档对象对应一索引表,该索引表包括多个索引字段,其中至少有一个索引字段作为文档ID唯一标识对应文档对象;
2)在索引缓存中对索引表建立倒排索引,当索引缓存耗尽时将索引缓存中的倒排索引写入磁盘倒排索引数据库;
3)对倒排索引数据库中的倒排索引进行对数归并。
进一步的,所述倒排索引数据库包括索引的统计信息、索引桶统计信息、词典、倒排索引、索引表信息。
进一步的,所述索引统计信息包括索引版本、最后修改时间、文档对象总数、索引桶个数。
进一步的,对于每个索引桶,用一个索引桶描述符描述,包含索引桶的名称、文档对象编号基数和索引桶容量。
进一步的,所述索引桶统计信息包含索引表的各个索引字段;词典中存储索引表中出现的词语信息。
进一步的,所述索引字段包括索引属性、词总数、索引字段在词典数据结构中的偏移量以及倒排索引数据长度。
进一步的,对倒排索引数据库中的倒排索引进行对数归并的方法为:首先创建一个队列Q、队列W;然后将待归并的倒排索引i0,i1,...ik放进队列Q中;其中,第一次写入磁盘倒排索引数据库的倒排索引称为第0代子索引,即i0;ik为第k代子索引;然后将队列Q中的子索引依次弹出放入队列W中,如果队列W中有两个同一代的子索引,则将这两个子索引进行归并为一个上一代索引并删除这两个子索引,直至队列W中不存在两个同一代的子索引。
进一步的,当队列W中有两个第i代的子索引以及一由另外两个第i代子索引归并后的第i+1代子索引,则把这两个第i代子索引与该第i+1代子索引一起合并成一新的第i+2代子索引。
进一步的,采用两个文件存储所述索引表;其中,文件a存储索引表的索引字段;文件b存储索引字段在文件a中的偏移量;读取索引数据时,根据索引字段在文件b中定位读取偏移量,再根据偏移量直接在文件a中读取索引字段。
一种DNS查询的方法,其特征在于,当域名服务器收到一DNS日志查询请求时,域名服务器根据该索引查找与该DNS日志查询请求匹配的DNS日志。
与现有技术相比,本发明的积极效果为:
本文(本发明的系统简称DNSE)选取10种常见的开源搜索引擎进行实验对比,数据采
用2.7G TREC语料库,对比数据如下:
表1搜索引擎比较
表1:基于索引时间、索引文件的大小和平均查询时间,对DNSE和开源搜索引擎做比较(基于2.7GB的TREC语料库)。
实验结果如图3、4、5所示,通过实验结果可以表明,本文发明索引时间占用最小,索引大小最小,平均查询时间排名第2位,大大提高了从海量信息中查找特定信息的效率,在存储和检索效率等方面较好地综合满足了实际业务需求。
本发明大大提高了从海量信息中查找特定信息的效率,满足信息检索的快速响应请求。
附图说明
图1为本发明的索引流程图;
图2为本发明的对数归并索引合并过程图;
图3为索引时间占用对比图;
图4为索引文件大小对比图;
图5为查询时间对比图。
具体实施方式
下面结合附图对本发明的具体实施方法进行进一步详细描述。
索引就是把原始的数据处理成一个有利于高效检索的数据形式,索引是信息检索最为核心的概念,本节将详细介绍索引流程、结构与算法。
1)索引流程
DNS日志首先经过文档集处理后形成多个文档对象,这些文档先放入文档缓存中,在文档缓存耗尽时经过格式解析形成已解释文档对象,即文档缓存耗尽时对文档缓存中的这些文档进行词语切分,词语切分后便于建立索引,根据关键词进行检索。预处理完毕的每一文档对象对应一索引表,索引表包括多个索引字段,其中至少有一个索引表字段可以唯一标识文档ID。针对索引表建立倒排索引,倒排索引一般先存储在索引缓存中,当索引缓存耗尽时通过索引存储系统写入磁盘倒排索引数据库,第一次写入磁盘倒排索引数据库的索引称为第0代子索引;对一系列子索引ik进行对数归并完成本发明的索引创建。本发明整体的索引流程图如图1所示。
2)索引结构
索引数据库主要包含5部分数据结构。
2.1)索引的统计信息
索引统计信息包含索引版本(即第几代索引),最后修改时间,文档对象总数,索引桶个数等信息。对于每个索引桶,用一个索引桶描述符描述,包含索引桶的名称,文档对象编号基数(即文档起始编号),索引桶容量(文档数)等数据;本发明中将结构相似的索引表放入同一索引桶中。
2.2)索引桶统计信息
包含索引表的各个索引字段的信息,包括索引属性,词总数,该索引字段在词典数据结构中的偏移量,倒排索引数据长度等信息。
2.3)词典
词典数据结构存储索引表中出现的词语信息,索引表典型的结构包含词ID,词频以及在倒排索引数据结构中的偏移。
2.4)倒排索引
倒排索引存储每个词的位置列表信息。
2.5)索引表表信息
每个文档对象的索引表必须至少包含一个用于唯一标识该文档对象的索引字段。为了加快索引数据的快速定位和读取,采用两个文件存储,第一个文件存储索引字段在第二个文件中的偏移量,每个文档一项;第二个文件存储文档的索引字段;读取时可以根据文档ID(本发明的索引字段)直接在第一个文件中定位读取偏移量,再根据偏移量直接在第二个文件中读取索引字段。
3)对数归并索引
本发明采用对数归并算法,该算法支持在线和离线索引,同时也支持索引更新(文档添加和删除)。对数归并算法引入了索引代(index generation)的概念来决定什么时候合并子索引。算法思想如下:
1.归并操作必须是由内存子索引触发的,当有两个内存子索引到来时才触发归并操作。
2.要对两个内存直接产生的索引进行归并,并把它之前的不同代的归并过的索引加上这两个内存子索引一起归并,如果归并的最高代为m,归并后的索引为m+1。
2.1对数归并索引算法描述:
2.2对数归并索引过程
对数归归并过程如图2所示,虚线表示的索引节点不是真正产生的索引,它与对数归并不同,在这里标出来只是方便对比,省去了两个子索引归并成虚线索引节点的过程,节省了归并时间。对数归并中不在同一代上的索引文件也可以进行归并,它的改进思想在于:当两个内存子索引需要合并时,如果这两个子索引合并后,有另一个归并的索引与它在同一代,则把这两个子索引与它们上一代的归并索引一起合并成新索引,而不用等两个子索引合并后再与它同代的索引进行合并。
Claims (10)
1.一种基于对数归并的DNS索引创建方法,其步骤为:
1)将每一DNS日志生成一文档对象,然后将各文档对象放入DNS的文档缓存中;当DNS的文档缓存耗尽时,对文档缓存中的每一文档对象进行词语切分,得到一解释文档对象;每一解释文档对象对应一索引表,该索引表包括多个索引字段,其中至少有一个索引字段作为文档ID唯一标识对应文档对象;
2)在索引缓存中对索引表建立倒排索引,当索引缓存耗尽时将索引缓存中的倒排索引写入磁盘倒排索引数据库;
3)对倒排索引数据库中的倒排索引进行对数归并。
2.如权利要求1所述的方法,其特征在于,所述倒排索引数据库包括索引的统计信息、索引桶统计信息、词典、倒排索引、索引表信息。
3.如权利要求2所述的方法,其特征在于,所述索引统计信息包括索引版本、最后修改时间、文档对象总数、索引桶个数。
4.如权利要求3所述的方法,其特征在于,对于每个索引桶,用一个索引桶描述符描述,包含索引桶的名称、文档对象编号基数和索引桶容量。
5.如权利要求2所述的方法,其特征在于,所述索引桶统计信息包含索引表的各个索引字段;词典中存储索引表中出现的词语信息。
6.如权利要求2~5任一所述的方法,其特征在于,所述索引字段包括索引属性、词总数、索引字段在词典数据结构中的偏移量以及倒排索引数据长度。
7.如权利要求1所述的方法,其特征在于,对倒排索引数据库中的倒排索引进行对数归并的方法为:首先创建一个队列Q、队列W;然后将待归并的倒排索引i0,i1,...ik放进队列Q中;其中,第一次写入磁盘倒排索引数据库的倒排索引称为第0代子索引,即i0;ik为第k代子索引;然后将队列Q中的子索引依次弹出放入队列W中,如果队列W中有两个同一代的子索引,则将这两个子索引进行归并为一个上一代索引并删除这两个子索引,直至队列W中不存在两个同一代的子索引。
8.如权利要求7所述的方法,其特征在于,当队列W中有两个第i代的子索引以及一由另外两个第i代子索引归并后的第i+1代子索引,则把这两个第i代子索引与该第i+1代子索引一起合并成一新的第i+2代子索引。
9.如权利要求1所述的方法,其特征在于,采用两个文件存储所述索引表;其中,文件a存储索引表的索引字段;文件b存储索引字段在文件a中的偏移量;读取索引数据时,根据索引字段在文件b中定位读取偏移量,再根据偏移量直接在文件a中读取索引字段。
10.一种基于权利要求1所述基于对数归并的DNS索引创建方法创建的索引进行DNS查询的方法,其特征在于,当域名服务器收到一DNS日志查询请求时,域名服务器根据该索引查找与该DNS日志查询请求匹配的DNS日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610262289.3A CN105912696A (zh) | 2016-04-25 | 2016-04-25 | 一种基于对数归并的dns索引创建方法及查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610262289.3A CN105912696A (zh) | 2016-04-25 | 2016-04-25 | 一种基于对数归并的dns索引创建方法及查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105912696A true CN105912696A (zh) | 2016-08-31 |
Family
ID=56752145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610262289.3A Pending CN105912696A (zh) | 2016-04-25 | 2016-04-25 | 一种基于对数归并的dns索引创建方法及查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105912696A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484770A (zh) * | 2016-09-09 | 2017-03-08 | 中国互联网络信息中心 | 一种dns增量区域数据文件的处理方法 |
CN107220287A (zh) * | 2017-04-24 | 2017-09-29 | 东软集团股份有限公司 | 用于日志查询的索引管理方法、装置、存储介质及设备 |
CN108600405A (zh) * | 2018-03-14 | 2018-09-28 | 中国互联网络信息中心 | 一种加速dns解析软件日志记录的方法和系统 |
CN108776578A (zh) * | 2018-06-01 | 2018-11-09 | 南京紫光云信息科技有限公司 | 一种快速合并对象的方法和系统 |
CN110990366A (zh) * | 2019-12-04 | 2020-04-10 | 中国农业银行股份有限公司 | 一种提升基于es的日志系统性能的索引分配方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722553A (zh) * | 2012-05-24 | 2012-10-10 | 浙江大学 | 基于用户日志分析的分布式倒排索引组织方法 |
CN103198079A (zh) * | 2012-01-06 | 2013-07-10 | 北大方正集团有限公司 | 相关搜索的实现方法和装置 |
CN105224624A (zh) * | 2015-09-22 | 2016-01-06 | 广州神马移动信息科技有限公司 | 一种实现倒排链快速归并的方法和装置 |
-
2016
- 2016-04-25 CN CN201610262289.3A patent/CN105912696A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198079A (zh) * | 2012-01-06 | 2013-07-10 | 北大方正集团有限公司 | 相关搜索的实现方法和装置 |
CN102722553A (zh) * | 2012-05-24 | 2012-10-10 | 浙江大学 | 基于用户日志分析的分布式倒排索引组织方法 |
CN105224624A (zh) * | 2015-09-22 | 2016-01-06 | 广州神马移动信息科技有限公司 | 一种实现倒排链快速归并的方法和装置 |
Non-Patent Citations (2)
Title |
---|
曾晔垠: "全文索引技术中索引归并算法的研究与分析", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
王泽胤: "全文信息检索的快速索引文件结构及系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484770A (zh) * | 2016-09-09 | 2017-03-08 | 中国互联网络信息中心 | 一种dns增量区域数据文件的处理方法 |
CN106484770B (zh) * | 2016-09-09 | 2019-08-06 | 中国互联网络信息中心 | 一种dns增量区域数据文件的处理方法 |
CN107220287A (zh) * | 2017-04-24 | 2017-09-29 | 东软集团股份有限公司 | 用于日志查询的索引管理方法、装置、存储介质及设备 |
CN108600405A (zh) * | 2018-03-14 | 2018-09-28 | 中国互联网络信息中心 | 一种加速dns解析软件日志记录的方法和系统 |
CN108776578A (zh) * | 2018-06-01 | 2018-11-09 | 南京紫光云信息科技有限公司 | 一种快速合并对象的方法和系统 |
CN110990366A (zh) * | 2019-12-04 | 2020-04-10 | 中国农业银行股份有限公司 | 一种提升基于es的日志系统性能的索引分配方法及装置 |
CN110990366B (zh) * | 2019-12-04 | 2024-02-23 | 中国农业银行股份有限公司 | 一种提升基于es的日志系统性能的索引分配方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11468027B2 (en) | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor | |
CN104536959B (zh) | 一种Hadoop存取海量小文件的优化方法 | |
US8938459B2 (en) | System and method for distributed index searching of electronic content | |
CN102122285B (zh) | 一种数据缓存系统中的数据查询系统和数据查询方法 | |
CN101354726B (zh) | 一种机群文件系统的内存元数据管理方法 | |
CN105912696A (zh) | 一种基于对数归并的dns索引创建方法及查询方法 | |
CN107368527B (zh) | 基于数据流的多属性索引方法 | |
US20040205044A1 (en) | Method for storing inverted index, method for on-line updating the same and inverted index mechanism | |
CN102332030A (zh) | 用于分布式键-值存储系统的数据存储、管理和查询方法及系统 | |
US8472289B2 (en) | Static TOC indexing system and method | |
CN104850572A (zh) | HBase非主键索引构建与查询方法及其系统 | |
US9262511B2 (en) | System and method for indexing streams containing unstructured text data | |
CN105117417A (zh) | 一种读优化的内存数据库Trie树索引方法 | |
CN100458784C (zh) | 在数字图书馆中所采用的检索系统和检索方法 | |
CN103914483B (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN111459945B (zh) | 一种基于HBase的分层式索引查询方法 | |
CN109766318B (zh) | 文件读取方法及装置 | |
CN109460404A (zh) | 一种基于redis的高效Hbase分页查询方法 | |
CN106484684B (zh) | 一种对数据库中的数据进行术语匹配的方法 | |
CN104636368A (zh) | 数据检索方法、装置及服务器 | |
CN110825747B (zh) | 一种信息存取方法、装置和介质 | |
CN109213760A (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN108614879A (zh) | 小文件处理方法与装置 | |
CN110413724B (zh) | 一种数据检索方法和装置 | |
CN105243099A (zh) | 一种基于翻译文件的大数据实时存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160831 |