CN1204516C - 数据查寻方法 - Google Patents
数据查寻方法 Download PDFInfo
- Publication number
- CN1204516C CN1204516C CN 01103695 CN01103695A CN1204516C CN 1204516 C CN1204516 C CN 1204516C CN 01103695 CN01103695 CN 01103695 CN 01103695 A CN01103695 A CN 01103695A CN 1204516 C CN1204516 C CN 1204516C
- Authority
- CN
- China
- Prior art keywords
- character
- character string
- string
- database
- search
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据查寻方法,适用于一数据库,包括下列步骤:输入一数据;进入该数据库的根节点;调用一字符串匹配模块,判断当前节点中是否有与所要查寻的关键字相匹配的信息;以及判断字符串匹配操作是否成功。
Description
技术领域
本发明涉及一种数据查寻方法。
背景技术
现有技术中,在数据结构中查寻数据时,通常有两种实现方式:
一种方式是利用B树数据结构进行数据查寻,先访问根节点,然后经过左子树及右子树,如此虽然可以达到数据查寻的目的,但是却无法实现数据索引操作。
另一种方式是利用B+树结构进行数据查寻,虽然能够通过数据库底层的线性链表,实现线性索引方式,但是由于在数据结构中的某些节点为仅有名称、没有数据的空节点,因此会影响查寻数据的速度,并在数据存放空间上有一定程度的浪费。
再者,现有技术情况下,当需要在数据库中查寻字符串时,传统的B树结构和B+树结构中,都是以所要查寻的字符串中的关键字作为标准,逐一比对,是这种方法势必会导致查寻过程中时间的浪费。
发明内容
为了解决上述问题,本发明的目的在于提供一种数据查寻方法,当使用者需要在容量大的数据库中查寻字符串时,利用多线程比对技术,可同时对字符串中的多个关键字进行快速查询,提高了字符串比较的效率,并且提高了准确度。
本发明所提供的数据查寻方法,集合了上述两种现有技术的优点,不仅能够实现线性索引,而且不会影响数据查寻的速度以及占用多余的储存空间,并且对于字符串的查寻则采用多线程比对的方式,更可提高查寻的速度和准确度。例如,对于一个N阶的数据库,如果要进行数据索引,就须对每个节点进行N-1的字符串比较,方可实现完整的数据查寻过程。而利用本发明所提供的方法,则只需针对这个N阶的数据,设定N-1个线程,即可快速完成对数据库中节点字符串进行匹配的过程。
根据本发明,一种数据查寻方法,适用于一数据库,包括下列步骤:输入一数据;进入该数据库的根节点;调用一字符串匹配模块,判断当前节点中是否有与所要查寻的关键字相匹配的信息;以及判断字符串匹配操作是否成功。其中,所述字符串匹配模块的执行步骤进一步包括以下步骤:对数据库的原始字符串进行分段;对原始字符串的每一段内容分配一独立线程;对各线程进行比较;当有线程返回字符不匹配信息,则表示所要查寻的字符串与数据库中的原始字符串不匹配,查寻失败;当无线程返回字符不匹配信息,且所有线程的比较操作已完毕,则表示所要查寻的字符串与数据库中的原始字符串匹配,查寻成功;以及当无线程返回字符不匹配信息,且所有线程的比较操作尚未完毕,则继续进行各线程的比较。
附图说明
为了让本发明分上述和其他目的、特征、及优点能更明显易懂,下文特举出优选实施例,并结合附图,作详细说明如下:
图1是显示本发明的功能模块示意图;
图2显示索引控制模块的控制流程图;
图3显示字符串匹配模块的控制流程图;
图4显示字符串比较流程的控制流程图。
具体实施方式
本发明将配合附图作详细说明,本发明的功能模块示意图如图1所示,当数据输入后(101),调用索引控制模块(102),对该数据库中的数据进行索引操作,在索引控制模块中,对于数据库中每个节点的操作则采用字符串匹配模块(103)所包含的多线程控制程序,为每个节点的关键字分配线程,可针对节点中每个字符串进行快速字符串匹配的操作,在数据库容量很大的情况下,本发明的效果更为显著。
本发明的一种数据查寻方法,适用于一数据库,其操作流程详细说明如下。首先,输入一数据。之后,调用一索引控制模块,对该数据库中的数据进行索引操作,索引控制模块的控制流程,如图2所示。
请参阅图2,进行索引操作,首先设当前指针指向数据库根(root)节点,进入待查寻数据库的根节点(201);调用字符串匹配模块,判断待查数据是否在当前的节点中,判断当前节点中是否有与所要查寻的关键字相匹配的信息(202),请参阅图3及后续说明;字符串匹配操作是否成功(203);若是,则表示当前数据查寻成功(204),程序结束;若否,则判断当前的数据查寻操作是否已到达叶节点(205);若已到达叶节点,则表示所要查寻的数据不在该数据库中,查寻失败(206),程序结束;若当前的数据查寻操作未到达叶节点,则进入被索引数据库的下一个节点(207);再重复前述操作。
请参阅图3,当需要在数据库中查寻节点的字符串匹配情况时。其流程如下,首先根据数据库中某节点的字符串长度,对该字符串进行分段(301);之后,对每一段的内容分配一独立线程,与该段内容相匹配(302);各线程进行比较(303),请参阅图4及后续说明;判断此时是否有线程返回字符不匹配信息(304);若是,则表示所要查寻的字符串与数据库中的原始字符串不匹配(305),查寻失败(306);若无返回字符不匹配信息,则判断当前所有线程的比较操作是否完毕(307);若是,则表示所要查寻的字符串与数据库中的原始字符串匹配,查寻成功(308);若各线程的比较操作还没完毕,则返回(304),继续进行各线程的比较。
请参阅图4,进行字符串比较操作,首先取得待比较的节点字符串的长度(401);比较两字符串的长度是否相等(402);若不相等,则表示这两个字符串不匹配,操作失败(403),程序结束;若两字符串的长度相等,则将该字符串的长度给一变量n,并设变量i=0(404);比较字符串1和字符串2的第i个字符是否相等(405);若相等,则设i=i+1(406);判断i是否大于或等于n(407);若是,则表示被比较的两个字符串的所有字符都已比较完毕,两个字符串的比较结果为匹配,操作成功(408);若否,则继续判断i+1编号的两个字符是否相等。
实施例:
下面有一表格具体说明本发明与B+树结构、二分法数据查寻时的时间比较,运行环境为Pentium III 450/128M RAM/OS Win98):
10000 | 0.8527 | 0.8753 | 1.2289 |
20000 | 0.8746 | 0.9384 | 1.3288 |
50000 | 0.9023 | 1.0217 | 1.4610 |
100000 | 0.9386 | 1.0849 | 1.5610 |
200000 | 0.9671 | 1.2314 | 1.6610 |
单位:秒
本发明虽然以优选实施例披露如上,然并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,可作更动与润饰,因此本发明的保护范围应视所附的权利要求限定范围为准。
Claims (3)
1.一种数据查寻方法,适用于一数据库,包括下列步骤:
输入一数据;
进入该数据库的根节点;
调用一字符串匹配模块,判断当前节点中是否有与所要查寻的关键字相匹配的信息;以及
判断字符串匹配操作是否成功;
其中,所述字符串匹配模块的执行步骤进一步包括以下步骤:
对数据库的原始字符串进行分段;
对原始字符串的每一段内容分配一独立线程;
对各线程进行比较;
当有线程返回字符不匹配信息,则表示所要查寻的字符串与数据库中的原始字符串不匹配,查寻失败;
当无线程返回字符不匹配信息,且所有线程的比较操作已完毕,则表示所要查寻的字符串与数据库中的原始字符串匹配,查寻成功;以及
当无线程返回字符不匹配信息,且所有线程的比较操作尚未完毕,则继续进行各线程的比较。
2.如权利要求1所述的方法,其中,在该判断字符串匹配操作是否成功步骤之后,还包括下列步骤:
当字符串匹配操作成功,则表示当前数据查寻成功,程序结束;
当字符串匹配操作不成功,且已到达叶节点,则表示所要查寻的数据不在该数据库中,查寻失败,程序结束;以及
当字符串匹配操作不成功,且未到达叶节点,则进入该数据库的下一个节点。
3.如权利要求1所述的方法,其中,对各线程进行比较的执行步骤包括:
取得待比较的节点字符串的长度;
比较一第一字符串及一第二字符串的长度是否相等;
当该两个字符串长度不相等,则表示该两个字符串不匹配,程序结束;
当该两字符串的长度相等,则将该字符串的长度给一变量n,并设一变量i=0;
比较该第一字符串及该第二字符串的第i个字符是否相等;
当该第i个字符相等,则设i=i+1;
当该第i个字符大于或等于n,则表示被比较的两个字符串的所有字符都已比较完毕,两个字符串的比较结果为匹配,操作成功;以及
当该第i个字符不大于或等于n,则继续判断i+1编号的两个字符是否相等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01103695 CN1204516C (zh) | 2001-02-09 | 2001-02-09 | 数据查寻方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01103695 CN1204516C (zh) | 2001-02-09 | 2001-02-09 | 数据查寻方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1368697A CN1368697A (zh) | 2002-09-11 |
CN1204516C true CN1204516C (zh) | 2005-06-01 |
Family
ID=4653423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 01103695 Expired - Fee Related CN1204516C (zh) | 2001-02-09 | 2001-02-09 | 数据查寻方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1204516C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008098495A1 (fr) * | 2007-02-14 | 2008-08-21 | Jie Bai | Procédé et dispositif de détermination d'un fichier objet |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538322B (zh) * | 2003-04-14 | 2010-04-21 | 中兴通讯股份有限公司 | 一种用于消除字符串模糊匹配冗余的过滤方法 |
CN101216768B (zh) * | 2008-01-14 | 2010-10-13 | 北京中星微电子有限公司 | 一种嵌入式平台命令解析系统及运行的方法 |
-
2001
- 2001-02-09 CN CN 01103695 patent/CN1204516C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008098495A1 (fr) * | 2007-02-14 | 2008-08-21 | Jie Bai | Procédé et dispositif de détermination d'un fichier objet |
Also Published As
Publication number | Publication date |
---|---|
CN1368697A (zh) | 2002-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Baeza-Yates | Introduction to Data Structures and Algorithms Related to Information Retrieval. | |
AU772525B2 (en) | A search system and method for retrieval of data, and the use thereof in a search engine | |
EP0597630A1 (en) | Method for resolution of natural-language queries against full-text databases | |
US20090106286A1 (en) | Method of Hybrid Searching for Extensible Markup Language (XML) Documents | |
CN1620661A (zh) | 通过任意国家语言的查询来检索匹配的文档 | |
KR20060048779A (ko) | 정보 검색 시스템에서의 문구 식별 | |
EP1342177A1 (en) | Method for structuring and searching information | |
KR20060048780A (ko) | 정보 검색 시스템에서의 문구 기반 인덱싱 | |
KR20060048777A (ko) | 문서 설명의 문구 기반 생성 | |
CN1894685A (zh) | 翻译工具 | |
US6681217B1 (en) | Boolean text search combined with extended regular expression search | |
Hon et al. | String retrieval for multi-pattern queries | |
CN109947770A (zh) | 一种数据库查询方法、终端设备及存储介质 | |
US20050114317A1 (en) | Ordering of web search results | |
CN1601524A (zh) | 模糊查询系统及方法 | |
Giancarlo | The suffix of a square matrix, with applications | |
CN1204516C (zh) | 数据查寻方法 | |
CN1144143C (zh) | 使用快速查询索引结构的电子字典单词查询方法 | |
CN1115640C (zh) | 双语电子辞典的数据处理方法 | |
JP2500680B2 (ja) | デ−タ名付与登録装置 | |
Kanlayanawat et al. | Automatic indexing for Thai text with unknown words using trie structure | |
CN1648829A (zh) | 用于输入汉字的方法和系统 | |
Park et al. | A multi-dimensional indexing approach for timestamped event sequence matching | |
CN1144144C (zh) | 快速文字查找方法 | |
Baberwal et al. | Speeding up keyword search for search engines. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050601 Termination date: 20110209 |