CN110134686B - 一种中文关键词模糊查询的索引创建方法及系统 - Google Patents
一种中文关键词模糊查询的索引创建方法及系统 Download PDFInfo
- Publication number
- CN110134686B CN110134686B CN201910375448.4A CN201910375448A CN110134686B CN 110134686 B CN110134686 B CN 110134686B CN 201910375448 A CN201910375448 A CN 201910375448A CN 110134686 B CN110134686 B CN 110134686B
- Authority
- CN
- China
- Prior art keywords
- word
- index
- chinese
- fuzzy
- matched
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012216 screening Methods 0.000 claims description 15
- 206010028980 Neoplasm Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 208000019622 heart disease Diseases 0.000 description 1
- 208000024348 heart neoplasm Diseases 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008961 swelling Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Artificial Intelligence (AREA)
- Automation & Control Theory (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种中文关键词模糊查询的索引创建方法及系统,属于中文模糊查询效率技术领域。本发明的中文关键词模糊查询的索引创建方法将需要进行模糊查询的中文词语按照字进行拆分,并创建每个字在该中文词语中的索引信息,当中文词语模糊查询时,通过字索引快速查询出匹配中文词语的主键,并根据中文词语的主键从关系型数据库中查询出匹配内容。该发明的中文关键词模糊查询的索引创建方法能够解决关系型数据库中文模糊查询时使用自身索引查询效率低或无法使用索引查询效率低的问题,具有很好的推广应用价值。
Description
技术领域
本发明涉及中文模糊查询效率技术领域,具体提供一种中文关键词模糊查询的索引创建方法及系统。
背景技术
当前流行的关系型数据库主要有Oracle,MySQL,SQL Server,DB2等,这几种数据库都支持关键词的模糊查询,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级、千万级的时候,模糊查询的效率就很低。
中文关键词的模糊查询效率之所以低,是因为每次模糊查询一般会使用全表扫描,即使对后模糊匹配可以使用索引但仍然比有索引的准确查询效率低很多。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种能够解决关系型数据库中文模糊查询时使用自身索引查询效率低或无法使用索引查询效率低的问题的中文关键词模糊查询的索引创建方法。
本发明进一步的技术任务是提供一种中文关键词模糊查询的索引创建系统。
为实现上述目的,本发明提供了如下技术方案:
一种中文关键词模糊查询的索引创建方法,该方法将需要进行模糊查询的中文词语按照字进行拆分,并创建每个字在该中文词语中的索引信息,当中文词语模糊查询时,通过字索引快速查询出匹配中文词语的主键,并根据中文词语的主键从关系型数据库中查询出匹配内容。
作为优选,该方法具体包括以下步骤:
S1、字索引的创建:将关系型数据库中待查询的中文词语进行字拆分,为每个出现的字创建索引,形成字索引;
S2、字索引的查询:输入一个中文词语进行模糊查询时,先对该中文词语进行字拆分,在创建好的字索引中查找匹配的字索引,通过字索引筛选查询出匹配的中文词语。
作为优选,字索引的创建过程中,为每个出现的字创建索引,存入Map集合中形成字索引。
作为优选,所述字索引的索引信息包含中文词语的主键ID、该字在中文词语中的位置及中文词语的字符长度。
作为优选,字索引的查询过程中,通过字索引筛选查询出匹配中文词语的主键ID,根据主键ID查询出关系型数据库中匹配的内容。
作为优选,在字索引筛选时,每个拆分字的索引之间若主键ID相同,位置索引递增1则为模糊查询出的内容。
作为优选,在字索引筛选时,可以对字索引筛选过程进行修改,实现关系型数据库对所支持的对前模糊匹配、对后模糊匹配及排序。
作为优选,若只对前模糊匹配,只需要对筛选出的字索引最后判断位置信息和长度是否相等,若只对后模糊匹配,只需要关注第一个要匹配的字索引位置信息是否为1,若不为1,表示该字在中文词语中的位置不是1,则不符合条件。
作为优选,对模糊匹配度高的中文词语靠前排序时,只需对匹配值进行排序,匹配值的计算公式如下:
匹配值=输入关键词的字符长度/匹配中文词语的字符长度*100%。
一种中文关键词模糊查询的索引创建系统,该系统包括字索引的创建模块和字索引的查询模块;
字索引的创建模块用于将关系型数据库中待查询的中文词语进行字拆分,为每个出现的字创建索引,形成字索引;
字索引的查询模块用于输入一个中文词语进行模糊查询时,先对该中文词语进行字拆分,在创建好的字索引中查找匹配的字索引,通过字索引筛选查询出匹配的中文词语。
与现有技术相比,本发明的中文关键词模糊查询的索引创建方法具有以下突出的有益效果:所述中文关键词模糊查询的索引创建方法中,索引信息存入Map集合中形成字索引,对输入的关键词进行字拆分后去Map集合中进行字索引查询,这样能充分利用拆分字转换的hash值高效查询出关键词的所有字索引,经过索引筛选后找到匹配的主键索引,这样就把模糊查询转为主键索引查询,避免了关系型数据库自身模糊查询效率低的问题,经过实践验证,3700万数据的中文关键词模糊查询都在秒级以内,具有良好的推广应用价值。
附图说明
图1是本发明所述中文关键词模糊查询的索引创建方法及系统的过程示意图。
具体实施方式
下面将结合附图和实施例,对本发明的中文关键词模糊查询的索引创建方法及系统作进一步详细说明。
实施例
如图1所示,本发明的中文关键词模糊查询的索引创建方法,将需要进行模糊查询的中文词语按照字进行拆分,并创建每个字在该中文词语中的索引信息,当中文词语模糊查询时,通过字索引快速查询出匹配中文词语的主键,并根据中文词语的主键从关系型数据库中查询出匹配内容。
该方法具体包括以下步骤:
S1、字索引的创建:将关系型数据库中待查询的中文词语进行字拆分,为每个出现的字创建索引,形成字索引。
字索引的创建过程中,为每个出现的字创建索引,存入Map集合中形成字索引。
所述字索引的索引信息包含中文词语的主键ID、该字在中文词语中的位置及中文词语的字符长度。举例如下表1所示:
表1中文词语信息
主键ID | 中文词语名称 |
001 | 心脏肿瘤 |
002 | 心脏病 |
表1为关系型数据库中存储的中文词语,包括主键ID、中文词语名称等。对其中的中文词语名称按字进行拆分,并建立每个字的索引信息,形如‘主键ID#字在该中文词语中的位置#中文词语字符长度’。
把创建好的拆分字作为key,索引信息作为value存入Map集合中形成字索引,结构如下图:
{“心”:[”001#1#4”,”002#1#3”],
“脏”:[”001#2#4”,”002#2#3”],
“肿”:[”001#3#4”],
“瘤”:[”001#4#4”],
“病”:[”002#3#3”]
}
S2、字索引的查询:输入一个中文词语进行模糊查询时,先对该中文词语进行字拆分,在创建好的字索引中查找匹配的字索引,通过字索引筛选查询出匹配的中文词语。
如输入一个中文关键词,然后对该关键词按字进行拆分,在Map集合中查询每一个拆分字的索引,如输入‘心脏’,查询到的字索引如下:
{
“心”:[”001#1#4”,”002#1#3”],
“脏”:[”001#2#4”,”002#2#3”]
}
字索引的查询过程中,通过字索引筛选查询出匹配中文词语的主键ID,根据主键ID查询出关系型数据库中匹配的内容。
在字索引筛选时,每个拆分字的索引之间若主键ID相同,位置索引递增1则为模糊查询出的内容。如下表2所示:
表2索引筛选匹配对
001#1#4 | 001#2#4 |
001#1#4 | 002#2#3 |
002#1#3 | 001#2#4 |
002#1#3 | 002#2#3 |
如果主键ID相同,位置索引递增1,字符长度相同则为匹配出的字索引,因此“001#1#4”和“001#2#4”为两个匹配的索引,“002#1#3”和“002#2#3”为两个匹配的索引,筛选结果如表3所示:
表3筛选后的匹配对
001#1#4 | 001#2#4 |
002#1#3 | 002#2#3 |
还可以对字索引筛选过程进行修改,实现关系型数据库对所支持的对前模糊匹配、对后模糊匹配及排序。
对上述的索引筛选,实现的是对前和对后的通用模糊匹配,根据实际业务的需求可能只实现对前模糊匹配或对后模糊匹配,并把匹配度高的中文词语靠前排序。
若只对前模糊匹配,只需要对筛选出的字索引最后判断位置信息和长度是否相等。如表3中第一个匹配索引最后索引信息为‘001#2#4’,位置信息为2,但字符长度为4,则该索引不符合条件。
若只对后模糊匹配,只需要关注第一个要匹配的字索引位置信息是否为1,若不为1,表示该字在中文词语中的位置不是1,则不符合条件。如表四中‘001#1#4’和‘002#1#3’的位置信息都为1,则都是符合对后模糊匹配的结果。
对模糊匹配度高的中文词语靠前排序时,只需对匹配值进行排序,匹配值的计算公式如下:
匹配值=输入关键词的字符长度/匹配中文词语的字符长度*100%。
本发明的中文关键词模糊查询的索引创建系统,该系统包括字索引的创建模块和字索引的查询模块。
字索引的创建模块用于将关系型数据库中待查询的中文词语进行字拆分,为每个出现的字创建索引,形成字索引。
字索引的查询模块用于输入一个中文词语进行模糊查询时,先对该中文词语进行字拆分,在创建好的字索引中查找匹配的字索引,通过字索引筛选查询出匹配的中文词语。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (2)
1.一种中文关键词模糊查询的索引创建方法,其特征在于:该方法将需要进行模糊查询的中文词语按照字进行拆分,并创建每个字在该中文词语中的索引信息,当中文词语模糊查询时,通过字索引快速查询出匹配中文词语的主键,并根据中文词语的主键从关系型数据库中查询出匹配内容,具体包括以下步骤:
S1、字索引的创建:将关系型数据库中待查询的中文词语进行字拆分,为每个出现的字创建索引,形成字索引;
S2、字索引的查询:输入一个中文词语进行模糊查询时,先对该中文词语进行字拆分,在创建好的字索引中查找匹配的字索引,通过字索引筛选查询出匹配的中文词语;
其中,字索引的创建过程中,为每个出现的字创建索引,存入Map集合中形成字索引,所述字索引的索引信息包含中文词语的主键ID、该字在中文词语中的位置及中文词语的字符长度,字索引的查询过程中,通过字索引筛选查询出匹配中文词语的主键ID,根据主键ID查询出关系型数据库中匹配的内容,在字索引筛选时,每个拆分字的索引之间若主键ID相同,位置索引递增1则为模糊查询出的内容,在字索引筛选时,可以对字索引筛选过程进行修改,实现关系型数据库对所支持的对前模糊匹配、对后模糊匹配及排序,若只对前模糊匹配,只需要对筛选出的字索引最后判断位置信息和长度是否相等,若只对后模糊匹配,只需要关注第一个要匹配的字索引位置信息是否为1,若不为1,表示该字在中文词语中的位置不是1,则不符合条件,对模糊匹配度高的中文词语靠前排序时,只需对匹配值进行排序,匹配值的计算公式如下:匹配值=输入关键词的字符长度/匹配中文词语的字符长度*100%。
2.一种中文关键词模糊查询的索引创建系统,其特征在于:该系统包括字索引的创建模块和字索引的查询模块;
字索引的创建模块用于将关系型数据库中待查询的中文词语进行字拆分,为每个出现的字创建索引,形成字索引;
字索引的查询模块用于输入一个中文词语进行模糊查询时,先对该中文词语进行字拆分,在创建好的字索引中查找匹配的字索引,通过字索引筛选查询出匹配的中文词语;其中,字索引的创建过程中,为每个出现的字创建索引,存入Map集合中形成字索引,所述字索引的索引信息包含中文词语的主键ID、该字在中文词语中的位置及中文词语的字符长度,字索引的查询过程中,通过字索引筛选查询出匹配中文词语的主键ID,根据主键ID查询出关系型数据库中匹配的内容,在字索引筛选时,每个拆分字的索引之间若主键ID相同,位置索引递增1则为模糊查询出的内容,在字索引筛选时,可以对字索引筛选过程进行修改,实现关系型数据库对所支持的对前模糊匹配、对后模糊匹配及排序,若只对前模糊匹配,只需要对筛选出的字索引最后判断位置信息和长度是否相等,若只对后模糊匹配,只需要关注第一个要匹配的字索引位置信息是否为1,若不为1,表示该字在中文词语中的位置不是1,则不符合条件,对模糊匹配度高的中文词语靠前排序时,只需对匹配值进行排序,匹配值的计算公式如下:匹配值=输入关键词的字符长度/匹配中文词语的字符长度*100%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910375448.4A CN110134686B (zh) | 2019-05-07 | 2019-05-07 | 一种中文关键词模糊查询的索引创建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910375448.4A CN110134686B (zh) | 2019-05-07 | 2019-05-07 | 一种中文关键词模糊查询的索引创建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110134686A CN110134686A (zh) | 2019-08-16 |
CN110134686B true CN110134686B (zh) | 2023-04-21 |
Family
ID=67576533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910375448.4A Active CN110134686B (zh) | 2019-05-07 | 2019-05-07 | 一种中文关键词模糊查询的索引创建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134686B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625544B (zh) * | 2020-05-27 | 2023-08-01 | 贵州易鲸捷信息技术有限公司 | SQL On HBase上基于字符串切分的倒排索引的方法及系统 |
CN113076322A (zh) * | 2021-04-20 | 2021-07-06 | 深圳华南城网科技有限公司 | 一种商品搜索处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020054B (zh) * | 2011-09-20 | 2016-04-13 | 深圳市金蝶中间件有限公司 | 模糊查询方法及系统 |
CN105550298B (zh) * | 2015-12-11 | 2019-12-10 | 北京搜狗科技发展有限公司 | 一种关键词模糊匹配的方法及装置 |
CN107038207B (zh) * | 2017-02-20 | 2021-03-19 | 创新先进技术有限公司 | 一种数据查询方法、数据处理方法及装置 |
CN107808006B (zh) * | 2017-11-16 | 2021-10-26 | 中国工商银行股份有限公司 | 基于大数据量的模糊查询方法、设备以及系统 |
-
2019
- 2019-05-07 CN CN201910375448.4A patent/CN110134686B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110134686A (zh) | 2019-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273506B (zh) | 一种数据库多表联合查询的方法 | |
US10970315B2 (en) | Method and system for disambiguating informational objects | |
CN103761318B (zh) | 一种关系型异构数据库数据同步的方法及系统 | |
US6397204B1 (en) | Method, system, and program for determining the join ordering of tables in a join query | |
US7953724B2 (en) | Method and system for disambiguating informational objects | |
Chakrabarti et al. | Ranking objects based on relationships | |
US20190042624A1 (en) | Computer-implemented method for improving query execution in relational databases normalized at level 4 and above | |
US9665607B2 (en) | Methods and apparatus for organizing data in a database | |
US20030097354A1 (en) | Method and system for index sampled tablescan | |
US20110302187A1 (en) | Schema definition generating device and schema definition generating method | |
CN110134686B (zh) | 一种中文关键词模糊查询的索引创建方法及系统 | |
CN111026710A (zh) | 一种数据集的检索方法及系统 | |
CN106777343A (zh) | 增量分布式索引系统和方法 | |
CN102117318A (zh) | 一种企业信息化系统的数据处理方法 | |
Hadjieleftheriou et al. | Efficient approximate search on string collections | |
CN107169003B (zh) | 一种数据关联方法及装置 | |
CN105824956A (zh) | 一种基于链表结构的倒排索引模型及其构建方法 | |
US8046377B2 (en) | Method for calculating distributed joins in main memory with minimal communicaton overhead | |
CN103399952A (zh) | 一种基于关键词的关系数据库检索系统及方法 | |
Stockinger et al. | Using bitmap index for joint queries on structured and text data | |
CN105868406A (zh) | 基于多数据库的专利检索系统 | |
Wang et al. | A provenance storage method based on parallel database | |
Hartzman et al. | A relational approach to querying data streams | |
Gu et al. | Extending keyword search to metadata on relational databases | |
Xu | Dynamic Optimization Analysis of Keyword Query Results in Relational Databases Based on Ant Colony Optimization Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230406 Address after: S02 Building, 1036 Langchao Road, High-tech Zone, Jinan, Shandong Province, 250000 Applicant after: INSPUR GROUP Co.,Ltd. Applicant after: Shandong Langchao Intelligent Medical Technology Co.,Ltd. Address before: 250100 Ji'nan hi tech Zone No. 2877, Shandong Province Applicant before: INSPUR GROUP Co.,Ltd. Applicant before: SHANDONG HEALTH MEDICAL BIG DATA Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |