CN100444171C - 一种ip词典检索方法及查词引擎装置 - Google Patents

一种ip词典检索方法及查词引擎装置 Download PDF

Info

Publication number
CN100444171C
CN100444171C CNB2006100892998A CN200610089299A CN100444171C CN 100444171 C CN100444171 C CN 100444171C CN B2006100892998 A CNB2006100892998 A CN B2006100892998A CN 200610089299 A CN200610089299 A CN 200610089299A CN 100444171 C CN100444171 C CN 100444171C
Authority
CN
China
Prior art keywords
dictionary
key word
critical
address
decryption
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
Application number
CNB2006100892998A
Other languages
English (en)
Other versions
CN1904890A (zh
Inventor
徐海龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Office Software Inc
Original Assignee
Beijing Kingsoft Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Software Co Ltd filed Critical Beijing Kingsoft Software Co Ltd
Priority to CNB2006100892998A priority Critical patent/CN100444171C/zh
Publication of CN1904890A publication Critical patent/CN1904890A/zh
Application granted granted Critical
Publication of CN100444171C publication Critical patent/CN100444171C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种IP词典检索方法及查词引擎装置。该IP词典检索方法包括步骤:获取IP地址形式的查找关键字;依据所述关键字所预置的地址段,获取该地址段的预设的临界IP地址;获取所述临界IP地址对应的解释数据。由于本发明在检索IP词典时,检索的关键字是临界IP地址,因为临界IP地址的数量远少于IP词典的IP地址数量,所以提高了检索速度。

Description

一种IP词典检索方法及查词引擎装置
技术领域
本发明涉及IP词典检索方法,还包括查词引擎装置。
背景技术
近年来查词软件得到了广泛的应用。一般的查词软件中提供了各种类型的词典供用户查询,例如英汉词典、汉英词典、及各种专业词典等,相对于下文将要提到的IP词典,上述词典统称为传统词典,传统词典的数据具有以下特点:
1、关键字与解释数据一一对应;
2、关键字数量有限,一般都在几百万左右;
3、关键字之间无相关性。
现有的查词软件中通常以每个词典为单位对传统词典数据进行组织,具体方法为:将词典中所有的关键字建立一个检索索引,索引包括关键字以及其对应解释数据在数据存储区中的偏移地址,建立一个解释数据存储区用以保存关键字的解释数据。查词时,查词引擎根据用户检索的目标词典,获取对应的词典文件,通过检索该词典文件的词典索引找到用户输入的关键字及其对应解释数据的偏移地址,获取该关键字对应的解释数据。
随着网络的快速发展,用户往往需要知道一个网际协议(Internet Protocol,IP)地址所对应主机的相关信息,如主机地理位置等,为了满足用户对IP地址的检索需求,需要在现有的查词软件中增加以IP地址为关键字形式的词典,即IP词典。
IP词典相比于传统词典,其具有以下特点:1、关键字数量很大,IP地址的格式是x.x.x.x,每一位的范围在0-255,因此最多可以有232个,即42亿多个,远远大于普通传统词典;2、多个连续的关键字具有相同的解释数据。由于IP地址的关键字数量庞大,当使用现有技术组织IP词典时将会保存所有的关键字及其解释数据,这将会占用极大的存储空间。关键字数量很大还会造成使用现有的查词技术检索IP词典时,由于检索索引的庞大,查询速度会急剧下降。由于IP词典与一般的传统词典的词典数据存在差异,如何提供一个查词引擎能够既满足用户对IP关键字进行查找又能满足用户对传统词典关键字的查找也是一个需要解决的问题。
发明内容
本发明要解决的问题是提出一种IP词典检索方法,以提高检索速度;本发明还提出一种查词引擎装置,以同时兼容对传统词典与IP词典的检索。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的:
1)获取IP地址形式的查找关键字;
2)依据所述关键字所预置的地址段,获取该地址段的预设的临界IP地址;
3)获取所述临界IP地址对应的解释数据。
其中,步骤2)之后还包括:
2a)由所述的临界IP地址获取对应的解释数据的偏移地址。
其中,所述IP词典包括扩展数据,所述扩展数据记录了预设的临界IP地址,步骤2)在所述扩展数据中进行。
其中,预设临界IP地址的方法为:
a)将IP词典中的所有关键字排序;
b)顺序获取每一组连续且解释数据相同的关键字中的一个关键字作为临界IP地址。
其中,步骤a)具体为:将IP词典中的所有关键字按升序排列;或者,按降序排列。
其中,步骤b)具体为:顺序获取每一组连续且解释数据相同的关键字中的第一个关键字或者最后一个关键字。
其中,所述IP词典的关键字只包括临界IP地址。
其中,获取临界IP地址的方法是二分法或者排序二叉树法。
本发明还提供了一种查词引擎装置,该查词引擎装置包括:
词典类型判断模块:用于判断用户选择欲检索的目标词典类型,若是IP词典,则将欲检索关键字发送到前置检索模块;若是传统词典,则将欲检索关键字发送到检索模块;
前置检索模块:用于对IP词典的扩展索引进行检索,由关键字获取临界关键字,发送临界关键字到检索模块;
检索模块:用于接收到关键字或者临界关键字后进行检索,返回解释数据。
从以上技术方案可以看出,本发明具有以下有益效果:本发明在检索IP词典时,检索的关键字是临界IP地址,因为临界IP地址的数量远少于IP词典的关键字数量,所以提高了检索速度;本发明的临界IP地址的选取方法灵活多样,包括升序排列选取第一个关键字、升序排列选取最后一个关键字、降序排列选取第一个关键字、及降序排列选取最后一个关键字等;本发明选取临界IP地址作为关键字,减少了存储空间;由于本发明中提供的查词引擎装置中,设置了词典类型判断模块,当目标词典是IP词典时,则由前置检索模块进行处理后,再由检索模块进行处理,因此本发明的查词引擎可以同时适用于对IP词典关键字和传统词典关键字的检索。
附图说明
图1为本发明对IP词典进行重新组织的方法的一实施例的流程图;
图2为本发明一种IP词典检索方法的一实施例的流程图;
图3为本发明采用二分法获取关键字对应的临界关键字时的流程图;
图4为本发明对IP词典进行重新组织的方法的又一实施例的流程图;
图5为本发明一种IP词典查词引擎装置的框图;
图6为本发明一种IP词典检索方法的又一实施例的流程图。
具体实施方式
IP词典除了有关键字数量大的特点外,还有以下几个特点:
1、关键字与解释数据不是一一对应;
2、关键字之间具有连续性及相关性。
也就是说,将IP词典的关键字顺序排列后,IP词典具有连续的多个关键字对应一个解释数据的特点,例如将IP地址以升序排列,那么58.32.1.1至58.32.19.255之间的所有IP地址的地理地址都为上海市黄浦/卢湾区,58.60.1.1至58.60.255.255之间的所有IP地址的地理地址都为广东省深圳市。
本发明根据IP词典的以上特点,对IP词典的检索方法提出了新的方案。本发明的核心思想为:首先获取IP地址形式的查找关键字;再依据所述关键字所预置的地址段,获取该地址段的预设的临界IP地址;最后由所述的临界IP地址获取对应的解释数据的偏移地址,根据解释数据的偏移地址获取所述临界IP地址对应的解释数据。
下面参照图1所示的流程图描述根据本发明对IP词典进行重新组织的方法的一实施例。
如图1所示为本发明对IP词典进行重新组织的方法的一实施例的流程图,其具体为:
101)流程开始;
102)将IP词典中所有的关键字以升序顺序排列;
升序顺序排列即为按照所有关键字对应的二进制或十进制数据的大小进行由小到大的排列;
103)获取每一组连续且解释数据相同的关键字中的第一个关键字,称此关键字为临界关键字;
通过这一步骤,将大量的连续的相关的关键字转化成了独立的离散的关键字,大大降低了关键字的数量;
104)将上一步骤获取的临界关键字及其对应的解释数据组织成词库文件;
该词库文件的格式与传统词典格式相同,如表一所示;
词典类型 词典校验信息 词典索引 解释数据存储区
表一
其中:
词典类型:用于标识当前词典的类型,例如英汉词典,汉英词典,IP词典等;
词典校验信息:用于对当前词典的准确性及完整性进行校验;
词典索引:用于存储当前词典中的关键字以及关键字对应解释数据在数据区中的偏移地址,对于传统词典来说,词典索引存储的关键字是该词典中的关键字,对于IP词典来说,词典索引存储的关键字是临界关键字;
解释数据存储区:用于保存当前词典中关键字的解释数据;
105)流程结束。
以上为实现本发明对IP词典进行重新组织的方法的一个实施例的流程,实际上,在步骤102)中对关键字进行排序时也可采用降序的方法,即按照所有关键字对应的二进制或十进制数据的大小进行由大到小的排列;在步骤103)中获取临界关键字时,也可以获取每一组连续且解释数据相同的关键字中的最后一个关键字作为临界关键字。
综上所述,可以得出本发明对IP词典进行重新组织的方法至少还应该包括三种方式,以下仅说明他们之间的区别步骤:
方式二:
102`)将IP词典中所有的关键字以升序顺序排列;
103`)获取每一组连续且解释数据相同的关键字中的最后一个关键字,称此关键字为临界关键字;
方式三:
102``)将IP词典中所有的关键字以降序顺序排列;
103``)获取每一组连续且解释数据相同的关键字中的第一个关键字,称此关键字为临界关键字;
方式四:
102```)将IP词典中所有的关键字以降序顺序排列;
103```)获取每一组连续且解释数据相同的关键字中的最后一个关键字,称此关键字为临界关键字。
本发明还提出了一种IP词典检索方法,应用于前述的对IP词典进行重新组织后的新IP词典,如图2所示为该方法的一实施例的流程图。
下面,如图2所示,该方法包括:
201)流程开始;
202)在新IP词典索引中获取关键字对应的临界关键字;
203)获取临界关键字对应的解释数据的偏移,根据解释数据的偏移获取解释数据,输出该解释数据;
204)流程结束;
其中,步骤202)中获取关键字对应的临界关键字时可以采用二分法,图3所示即为采用二分法获取关键字对应的临界关键字时的流程图,其具体为:
301)输入关键字;
302)设置当前区间最小索引序号S1=区间最小索引序号SMIN
当前区间最大索引序号S2=区间最大索引序号SMAX
当前索引序号S=「(S1+S2)/2」;
其中SMIN、SMAX分别表示索引序号的最小和最大值;「」为取整符号;该步骤对S1、S2、S进行初始化;
303)判断输入的关键字是否大于或等于S对应的临界关键字,如果否,进入步骤304);如果是,进入步骤305);
304)设置S2=S;
S=「(S1+S2)/2」;
进入步骤503);
305)判断输入的关键字是否小于S的下一个序号对应的临界值,如果否,进入步骤306);如果是,进入步骤307);
306)设置S1=S;
S=「(S1+S2)/2」;
进入步骤503;
307)获取S对应的临界关键字,流程结束。
下面结合例子说明如何通过上述的二分法获取临界关键字。由于IP词典关键字数量极大,所以下面的例子只假设一个较小的区间以作说明。
如表所示,假设索引的内容如下表:
临界值 1  10  15  20  29  35  40  50  80  100  103  150  160  200
索引序号 0  1  2  3  4  5  6  7  8  9  10  11  12  13
表二
用户欲查找关键字64对应的临界关键字,下表列出了根据图4所示的方法每次查找到的当前索引序号及最终找到的结果。
  临界值  1   10   15   20   29   35   40   50   80   100   103   150   160   200
  索引序号  0   1   2   3   4   5   6   7   8   9   10   11   12   13
  第一次查找   ↑
  第二次查找   ↑
  第三次查找   ↑
  临界关键字   ↑
表三
本发明不仅可以通过二分法在IP词典扩展索引中获取关键字对应的临界关键字,还可以通过其他方法,例如排序二叉树法。
下面参照图4所示的流程图描述根据本发明对IP词典进行重新组织的方法的又一实施例。
如图4所示为本发明对IP词典进行重新组织的方法的又一实施例的流程图,应用下述方法组织后的IP词典增加了扩展数据以实现与传统词典的兼容,其具体为:
401)流程开始;
402)将IP词典中所有的关键字以升序顺序排列;
升序顺序排列即为按照所有关键字对应的二进制或十进制数据的大小进行由小到大的排列;
403)获取每一组连续且解释数据相同的关键字中的第一个关键字,称此关键字为临界关键字;
通过这一步骤,将大量的连续的相关的关键字转化成了独立的离散的关键字,大大降低了关键字的数量;
404)将上一步骤获取的临界关键字及其对应的解释数据组织成词库文件;
405)创建扩展数据,追加到该词库文件;
如表四所示即为该追加扩展数据后的词库文件的数据结构,其中虚线框内部分即为扩展数据:
Figure C20061008929900111
表四
其中:
词典类型:用于标识当前词典的类型,例如英汉词典,汉英词典,IP词典等;
词典校验信息:用于对当前词典的准确性及完整性进行校验;
词典索引:用于存储当前词典中的关键字以及关键字对应解释数据在数据区中的偏移地址,对于传统词典来说,词典索引存储的关键字是该词典中的关键字,对于IP词典来说,词典索引存储的关键字是临界关键字;
解释数据存储区:用于保存当前词典中关键字的解释数据;
扩展数据校验信息:用于对扩展索引的完整性及有效性进行校验;
扩展索引:用于将临界关键字以二进制形式进行顺序存储;
在后面所述的检索方法中,查词引擎将通过该扩展索引找到欲检索的关键字所对应的临界关键字;
扩展数据长度:记录扩展数据的长度,以方便确定扩展块和原词典块的数据大小和偏移;
406)流程结束。
以上为实现本发明对IP词典进行重新组织的方法的又一个实施例的流程,实际上,在步骤402)中对关键字进行排序时也可采用降序的方法,即按照所有关键字对应的二进制或十进制数据的大小进行由大到小的排列;在步骤403)中获取临界关键字时,也可以获取每一组连续且解释数据相同的关键字中的最后一个关键字作为临界关键字。
综上所述,可以得出本发明对IP词典进行重新组织的方法至少还应该包括三种方式,以下仅说明他们之间的区别步骤:
方式二:
402`)将IP词典中所有的关键字以升序顺序排列;
403`)获取每一组连续且解释数据相同的关键字中的最后一个关键字,称此关键字为临界关键字;
方式三:
402``)将IP词典中所有的关键字以降序顺序排列;
403``)获取每一组连续且解释数据相同的关键字中的第一个关键字,称此关键字为临界关键字;
方式四:
402```)将IP词典中所有的关键字以降序顺序排列;
403```)获取每一组连续且解释数据相同的关键字中的最后一个关键字,称此关键字为临界关键字。
本发明还提出了一种查词引擎装置,应用于前述的对IP词典进行重新组织后的新IP词典以及传统词典,如图5所示为该查词引擎装置的一实施例的框图。
下面,参照图5描述该查词引擎装置,该查词引擎包括:
词典类型判断模块:用于接收用户欲检索的关键字,判断用户选择欲检索的目标词典类型,若是IP词典,则将欲检索关键字发送到前置检索模块;若是传统词典,则将欲检索关键字发送到检索模块;
前置检索模块:用于对IP词典的扩展索引进行检索,由关键字获取临界关键字;
检索模块:用于接收到关键字或者临界关键字后,进行检索,返回解释数据。
本发明还提出了一种IP词典检索方法,应用于前述的对IP词典进行重新组织后的新IP词典以及传统词典,如图6所示为该方法的又一实施例的流程图。
下面,如图3所示,该方法包括:
601)流程开始;
602)判断用户欲检索的目标词典类型,获取相应的词库文件,如果是IP词典,进入步骤603);如果不是,进入步骤604);
603)在IP词典扩展索引中获取关键字对应的临界关键字;
604)获取关键字或者临界关键字对应的解释数据的偏移,根据解释数据的偏移获取解释数据,输出该解释数据;
605)流程结束;
其中,步骤603)中获取关键字对应的临界关键字时可以采用二分法,所述二分法与前述的实施例中采用的二分法相同,在此不再赘述。
本发明不仅可以通过二分法在IP词典扩展索引中获取关键字对应的临界关键字,还可以通过其他方法,比如排序二叉树法。
以上对本发明所提供的IP词典检索方法及查词引擎装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1、一种IP词典检索方法,其特征在于:
1)获取IP地址形式的查找关键字;
2)依据所述关键字所预置的地址段,获取该地址段的预设的临界IP地址;
3)获取所述临界IP地址对应的解释数据。
2、如权利要求1所述的IP词典检索方法,其特征在于,步骤2)之后还包括:
2a)由所述的临界IP地址获取对应的解释数据的偏移地址。
3、如权利要求1所述的IP词典检索方法,其特征在于,所述IP词典包括扩展数据,所述扩展数据记录了预设的临界IP地址,步骤2)在所述扩展数据中进行。
4、如权利要求2所述的IP词典检索方法,其特征在于,所述IP词典包括扩展数据,所述扩展数据记录了预设的临界IP地址,步骤2)在所述扩展数据中进行。
5、如权利要求1至4项任一项所述的IP词典检索方法,其特征在于,预设临界IP地址的方法为:
a)将IP词典中的所有关键字排序;
b)顺序获取每一组连续且解释数据相同的关键字中的一个关键字作为临界IP地址。
6、如权利要求5所述的IP词典检索方法,其特征在于,步骤a)具体为:将IP词典中的所有关键字按升序排列;或者,按降序排列。
7、如权利要求5所述的IP词典检索方法,其特征在于,步骤b)具体为:顺序获取每一组连续且解释数据相同的关键字中的第一个关键字或者最后一个关键字。
8、如权利要求1至4项任一项所述的IP词典检索方法,其特征在于:获取临界IP地址的方法是二分法或者排序二叉树法。
9、一种查词引擎装置,其特征在于,该查词引擎装置包括:
词典类型判断模块:用于判断用户选择欲检索的目标词典类型,若是IP词典,则将欲检索关键字发送到前置检索模块;若是传统词典,则将欲检索关键字发送到检索模块;
前置检索模块:用于对IP词典的扩展索引进行检索,由关键字获取临界关键字,发送临界关键字到检索模块;
检索模块:用于接收到关键字或者临界关键字后进行检索,返回解释数据。
CNB2006100892998A 2006-08-15 2006-08-15 一种ip词典检索方法及查词引擎装置 Active CN100444171C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100892998A CN100444171C (zh) 2006-08-15 2006-08-15 一种ip词典检索方法及查词引擎装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100892998A CN100444171C (zh) 2006-08-15 2006-08-15 一种ip词典检索方法及查词引擎装置

Publications (2)

Publication Number Publication Date
CN1904890A CN1904890A (zh) 2007-01-31
CN100444171C true CN100444171C (zh) 2008-12-17

Family

ID=37674155

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100892998A Active CN100444171C (zh) 2006-08-15 2006-08-15 一种ip词典检索方法及查词引擎装置

Country Status (1)

Country Link
CN (1) CN100444171C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102469134A (zh) * 2010-11-17 2012-05-23 广州欢网科技有限责任公司 一种ip地址检索方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1450478A (zh) * 2002-03-29 2003-10-22 株式会社东芝 服务器、网络系统、查找要求处理方法以及通信控制方法
CN1581846A (zh) * 2003-08-12 2005-02-16 华为技术有限公司 一种检索ip地址的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1450478A (zh) * 2002-03-29 2003-10-22 株式会社东芝 服务器、网络系统、查找要求处理方法以及通信控制方法
CN1581846A (zh) * 2003-08-12 2005-02-16 华为技术有限公司 一种检索ip地址的方法

Also Published As

Publication number Publication date
CN1904890A (zh) 2007-01-31

Similar Documents

Publication Publication Date Title
CN1997011B (zh) 数据分割方法和数据分割装置
CN102122285B (zh) 一种数据缓存系统中的数据查询系统和数据查询方法
CN101673307B (zh) 空间数据索引方法及系统
CN107368527B (zh) 基于数据流的多属性索引方法
CN113961514B (zh) 数据查询方法及装置
CN101140592A (zh) 关键字存储、查找方法和设备
CN101692651A (zh) 一种哈希查找表的方法和装置
CN1504912A (zh) 用树状分段改善树搜索性能和存储器带宽的方法和系统
CN102045412B (zh) IPv6地址前缀压缩存储方法及设备
CN107330094B (zh) 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
CN101655861A (zh) 基于双计数布鲁姆过滤器的哈希方法和哈希装置
CN108197313B (zh) 通过16位Trie树实现空间优化的词典索引方法
CN105224828B (zh) 一种基因序列片段快速定位用键值索引数据压缩方法
CN101286935A (zh) 一种基于ip地址范围的路由查找方法
CN105515997B (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
CN103020054A (zh) 模糊查询方法及系统
CN104636349A (zh) 一种索引数据压缩以及索引数据搜索的方法和设备
CN101251845B (zh) 利用改进的Wu-Manber算法进行多模式串匹配的方法
CN105447166A (zh) 一种基于关键字查找信息的方法及系统
CN106599091A (zh) 基于键值存储的rdf图结构存储和索引方法
CN104268158A (zh) 一种结构化数据分布式索引及检索方法
CN105912696A (zh) 一种基于对数归并的dns索引创建方法及查询方法
CN101751517A (zh) 一种基因组短序列映射的快速处理方法及系统
CN105354283A (zh) 一种资源的搜索方法和装置
CN100444171C (zh) 一种ip词典检索方法及查词引擎装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING KINGSOFT OFFICE SOFTWARE CO., LTD.

Free format text: FORMER OWNER: BEIJING JINSHAN SOFTWARE CO., LTD.

Effective date: 20140313

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 HAIDIAN, BEIJING TO: 100085 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20140313

Address after: Kingsoft No. 33 building, 100085 Beijing city Haidian District Xiaoying Road

Patentee after: Beijing Kingsoft WPS Office Co., Ltd.

Address before: 100083, Beijing, Haidian District No. 238 North Fourth Ring Road, No. 20, Bai Yan building

Patentee before: Beijing Jinshan Software Co., Ltd.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Kingsoft No. 33 building, 100085 Beijing city Haidian District Xiaoying Road

Patentee after: Beijing Kingsoft office software Limited by Share Ltd

Address before: Kingsoft No. 33 building, 100085 Beijing city Haidian District Xiaoying Road

Patentee before: Beijing Kingsoft WPS Office Co., Ltd.