CN106250443A - 基于内存全文检索解决数据库复杂文本查询的方法及系统 - Google Patents
基于内存全文检索解决数据库复杂文本查询的方法及系统 Download PDFInfo
- Publication number
- CN106250443A CN106250443A CN201610598903.3A CN201610598903A CN106250443A CN 106250443 A CN106250443 A CN 106250443A CN 201610598903 A CN201610598903 A CN 201610598903A CN 106250443 A CN106250443 A CN 106250443A
- Authority
- CN
- China
- Prior art keywords
- database
- memory
- internal memory
- index
- data base
- 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于内存全文检索解决数据库复杂文本查询的方法,需提供复数个服务器,每一服务器提供一内存,形成集群内存,所述方法包括如下步骤:步骤1、在每一内存中创建一内存数据库,将关系型数据库实例中所有字段作为键值均等地加载到各个内存的内存数据库中;步骤2、在每一内存中为内存数据库建立对应的索引库;步骤3、以广播形式经由检索器对内存中各个索引库进行文本查询,返回结果给应用系统。本发明还提供一种基于内存全文检索解决数据库复杂文本查询的系统,大大提高了数据库查询效率,并提高灵活性和扩展性。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种基于内存全文检索解决数据库复杂文本查询的方法及系统。
背景技术
随着信息化社会不断的向前发展,各行各业业务的种类越来越多,使用的人群也越复杂,信息化的复杂化直接导致关系型数据库实例中的字段增加,字段内容也越复杂,当数据库实例中的记录数量和复杂字段个数达到一定程度时,使用like查询会消耗大量时间,影响业务的通畅运作,现有技术中应用Lucene对数据库查询,是通过Lucene将索引保存至磁盘,在数据库实例过大的情况下,创建索引速度不够快,致使需要在业务空闲时间去进行Lucene索引的创新或更新,会导致应用的不便,查询效率低下。
发明内容
本发明要解决的技术问题之一,在于提供一种基于内存全文检索解决数据库复杂文本查询的方法,提高数据库查询效率,提高扩展性。
本发明要解决的技术问题之一是这样实现的:一种基于内存全文检索解决数据库复杂文本查询的方法,需提供复数个服务器,每一服务器提供一内存,形成集群内存,所述方法包括如下步骤:
步骤1、在每一内存中创建一内存数据库,将关系型数据库实例中所有字段作为键值均等地加载到各个内存的内存数据库中;
步骤2、在每一内存中为内存数据库建立对应的索引库;
步骤3、以广播形式经由检索器对内存中各个索引库进行文本查询,返回结果给应用系统。
进一步的,所述步骤2具体为:通过索引器解析配置文件,获取内存数据库连接,根据每一内存数据库中存储的内容分别建立索引,并保存到每一内存数据库对应建立的一索引库中。
进一步的,所述步骤3具体为:以广播形式经由Lucene索引器对各个内存节点中的索引库进行文本查询,得到对应记录的主键,并通过所述主键找到相应内存数据库中获取相关记录,最终按匹配级别由高到低将所有节点的查询结果返回到应用系统。
进一步的,所述方法还包括步骤4、将每一次业务的变更实时更新到关系型数据库中,并更新到内存数据库以及索引库中。
本发明要解决的技术问题之二,在于提供一种基于内存全文检索解决数据库复杂文本查询的系统,提高数据库查询效率,提高扩展性。
本发明要解决的技术问题之二是这样实现的:一种基于内存全文检索解决数据库复杂文本查询的系统,需提供复数个服务器,每一服务器提供一内存,形成集群内存,所述系统包括一内存数据库创建模块、一索引库创建模块和一查询模块:
所述内存数据库创建模块,用于在每一内存中创建一内存数据库,将关系型数据库实例中所有字段作为键值均等地加载到各个内存的内存数据库中;
所述索引库创建模块,用于在每一内存中为内存数据库建立对应的索引库;
所述查询模块,用于以广播形式经由检索器对内存中各个索引库进行文本查询,返回结果给应用系统。
进一步的,所述索引库创建模块具体为:用于通过索引器解析配置文件,获取内存数据库连接,根据每一内存数据库中存储的内容分别建立索引,并保存到每一内存数据库对应建立的一索引库中。
进一步的,所述查询模块具体为:用于以广播形式经由Lucene索引器对各个内存节点中的索引库进行文本查询,得到对应记录的主键,并通过所述主键找到相应内存数据库中获取相关记录,最终按匹配级别由高到低将所有节点的查询结果返回到应用系统。
进一步的,所述系统还包括更新模块,用于将每一次业务的变更实时更新到关系型数据库中,并更新到内存数据库以及索引库中。
本发明具有如下优点:
1、因使用索引器在内存中创建与更新索引,大大缩短对多字段数据库实例的复杂文本查询的响应时间,降低索引创建时间;
2、将关系型数据库实例缓存到内存数据库内,并以内存Lucene索引的方式,支持全文检索,避免使用关系型数据库like查询,提高查询效率;
3、通过分布式内存数据库的建立,可根据关系型数据库实例大小的变化,调整分布式内存数据库节点数量,提高扩展性。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种基于内存全文检索解决数据库复杂文本查询的方法执行流程图。
图2为本发明一种基于内存全文检索解决数据库复杂文本查询原理示意图。
图3为本发明一种基于内存全文检索解决数据库复杂文本查询的系统框图。
具体实施方式
如图1和图2所示,一种基于内存全文检索解决数据库复杂文本查询的方法,需提供复数个服务器,每一服务器提供一内存,形成集群内存,所述方法包括如下步骤:
步骤1、在每一内存中创建一内存数据库,将关系型数据库实例中所有字段作为键值均等地加载到各个内存的内存数据库中;
步骤2、在每一内存中为内存数据库建立对应的索引库;所述步骤2具体为:通过索引器(可用Lucene索引器或其他第三方索引工具)解析配置文件,获取内存数据库连接,根据每一内存数据库中存储的内容分别建立索引,通过读取需要抽取索引的源数据库信息,进行数据抽取与转换建立索引,并保存到每一内存数据库对应建立的一索引库中;
步骤3、以广播形式经由检索器对内存中各个索引库进行文本查询,返回结果给应用系统;所述步骤3具体为:以广播形式经由Lucene索引器(或其他第三方索引工具)对各个内存节点中的索引库进行文本查询,得到对应记录的主键ID,并通过所述主键ID找到相应内存数据库中获取相关记录,最终按匹配级别由高到低将所有节点的查询结果返回到应用系统。
所述方法还包括步骤4、将每一次业务的变更实时更新到关系型数据库中,并更新到内存数据库以及索引库中。
如图2和图3所示,一种基于内存全文检索解决数据库复杂文本查询的系统,需提供复数个服务器,每一服务器提供一内存,形成集群内存,所述系统包括一内存数据库创建模块、一索引库创建模块和一查询模块:
所述内存数据库创建模块,用于在每一内存中创建一内存数据库,将关系型数据库实例中所有字段作为键值均等地加载到各个内存的内存数据库中;
所述索引库创建模块,用于在每一内存中为内存数据库建立对应的索引库;所述索引库创建模块具体为:用于通过索引器(可用Lucene索引器或其他第三方索引工具)解析配置文件,获取内存数据库连接,根据每一内存数据库中存储的内容分别建立索引,通过读取需要抽取索引的源数据库信息,进行数据抽取与转换建立索引,并保存到每一内存数据库对应建立的一索引库中;
所述查询模块,用于以广播形式经由检索器对内存中各个索引库进行文本查询,返回结果给应用系统;所述查询模块具体为:用于以广播形式经由Lucene索引器(或其他第三方索引工具)对各个内存节点中的索引库进行文本查询,得到对应记录的主键ID,并通过所述主键ID找到相应内存数据库中获取相关记录,最终按匹配级别由高到低将所有节点的查询结果返回到应用系统。
所述系统还包括更新模块,用于将每一次业务的变更实时更新到关系型数据库中,并更新到内存数据库以及索引库中。
本发明通过创建集群内存以及集群索引,将关系型数据库分布到各个内存中,并以内存Lucene索引的方式,支持全文检索,避免使用关系型数据库like查询,缩短了对多字段数据库实例的复杂文本查询的响应时间,提高查询效率;且通过分布式内存数据库的建立,可根据关系型数据库实例大小的变化,调整(添加或删减)分布式内存数据库节点数量,提高扩展性、灵活性。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (8)
1.一种基于内存全文检索解决数据库复杂文本查询的方法,其特征在于:需提供复数个服务器,每一服务器提供一内存,形成集群内存,所述方法包括如下步骤:
步骤1、在每一内存中创建一内存数据库,将关系型数据库实例中所有字段作为键值均等地加载到各个内存的内存数据库中;
步骤2、在每一内存中为内存数据库建立对应的索引库;
步骤3、以广播形式经由检索器对内存中各个索引库进行文本查询,返回结果给应用系统。
2.根据权利要求1所述的基于内存全文检索解决数据库复杂文本查询的方法,其特征在于:所述步骤2具体为:通过索引器解析配置文件,获取内存数据库连接,根据每一内存数据库中存储的内容分别建立索引,并保存到每一内存数据库对应建立的一索引库中。
3.根据权利要求1所述的基于内存全文检索解决数据库复杂文本查询的方法,其特征在于:所述步骤3具体为:以广播形式经由Lucene索引器对各个内存节点中的索引库进行文本查询,得到对应记录的主键,并通过所述主键找到相应内存数据库中获取相关记录,最终按匹配级别由高到低将所有节点的查询结果返回到应用系统。
4.根据权利要求1所述的基于内存全文检索解决数据库复杂文本查询的方法,其特征在于:所述方法还包括步骤4、将每一次业务的变更实时更新到关系型数据库中,并更新到内存数据库以及索引库中。
5.一种基于内存全文检索解决数据库复杂文本查询的系统,其特征在于:需提供复数个服务器,每一服务器提供一内存,形成集群内存,所述系统包括一内存数据库创建模块、一索引库创建模块和一查询模块:
所述内存数据库创建模块,用于在每一内存中创建一内存数据库,将关系型数据库实例中所有字段作为键值均等地加载到各个内存的内存数据库中;
所述索引库创建模块,用于在每一内存中为内存数据库建立对应的索引库;
所述查询模块,用于以广播形式经由检索器对内存中各个索引库进行文本查询,返回结果给应用系统。
6.根据权利要求5所述的基于内存全文检索解决数据库复杂文本查询的系统,其特征在于:所述索引库创建模块具体为:用于通过索引器解析配置文件,获取内存数据库连接,根据每一内存数据库中存储的内容分别建立索引,并保存到每一内存数据库对应建立的一索引库中。
7.根据权利要求5所述的基于内存全文检索解决数据库复杂文本查询的系统,其特征在于:所述查询模块具体为:用于以广播形式经由Lucene索引器对各个内存节点中的索引库进行文本查询,得到对应记录的主键,并通过所述主键找到相应内存数据库中获取相关记录,最终按匹配级别由高到低将所有节点的查询结果返回到应用系统。
8.根据权利要求5所述的基于内存全文检索解决数据库复杂文本查询的系统,其特征在于:所述系统还包括更新模块,用于将每一次业务的变更实时更新到关系型数据库中,并更新到内存数据库以及索引库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610598903.3A CN106250443A (zh) | 2016-07-27 | 2016-07-27 | 基于内存全文检索解决数据库复杂文本查询的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610598903.3A CN106250443A (zh) | 2016-07-27 | 2016-07-27 | 基于内存全文检索解决数据库复杂文本查询的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106250443A true CN106250443A (zh) | 2016-12-21 |
Family
ID=57604767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610598903.3A Pending CN106250443A (zh) | 2016-07-27 | 2016-07-27 | 基于内存全文检索解决数据库复杂文本查询的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250443A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228725A (zh) * | 2017-12-11 | 2018-06-29 | 厦门亿力吉奥信息科技有限公司 | 基于分布式数据库的gis应用系统 |
CN108460041A (zh) * | 2017-02-20 | 2018-08-28 | 腾讯科技(深圳)有限公司 | 数据的处理方法和装置 |
CN109002444A (zh) * | 2017-06-07 | 2018-12-14 | 北大方正集团有限公司 | 全文检索方法和全文检索装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214207A (zh) * | 2011-04-27 | 2011-10-12 | 百度在线网络技术(北京)有限公司 | 一种用于对信息实体中的属性集合进行排序的方法与设备 |
US20130097136A1 (en) * | 2011-10-17 | 2013-04-18 | Pie Digital, Inc. | Method and system for acessing domain specific in-memory database management system |
CN104216957A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种视频元数据的查询系统及查询方法 |
US20150154200A1 (en) * | 2013-12-02 | 2015-06-04 | Qbase, LLC | Design and implementation of clustered in-memory database |
US20150254350A1 (en) * | 2014-03-04 | 2015-09-10 | Qbase, LLC | Method for entity enrichment of digital content to enable advanced search functionality in content management systems |
-
2016
- 2016-07-27 CN CN201610598903.3A patent/CN106250443A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214207A (zh) * | 2011-04-27 | 2011-10-12 | 百度在线网络技术(北京)有限公司 | 一种用于对信息实体中的属性集合进行排序的方法与设备 |
US20130097136A1 (en) * | 2011-10-17 | 2013-04-18 | Pie Digital, Inc. | Method and system for acessing domain specific in-memory database management system |
US20150154200A1 (en) * | 2013-12-02 | 2015-06-04 | Qbase, LLC | Design and implementation of clustered in-memory database |
US20150254350A1 (en) * | 2014-03-04 | 2015-09-10 | Qbase, LLC | Method for entity enrichment of digital content to enable advanced search functionality in content management systems |
CN104216957A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种视频元数据的查询系统及查询方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460041A (zh) * | 2017-02-20 | 2018-08-28 | 腾讯科技(深圳)有限公司 | 数据的处理方法和装置 |
CN108460041B (zh) * | 2017-02-20 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 数据的处理方法和装置 |
CN109002444A (zh) * | 2017-06-07 | 2018-12-14 | 北大方正集团有限公司 | 全文检索方法和全文检索装置 |
CN108228725A (zh) * | 2017-12-11 | 2018-06-29 | 厦门亿力吉奥信息科技有限公司 | 基于分布式数据库的gis应用系统 |
CN108228725B (zh) * | 2017-12-11 | 2020-12-29 | 厦门亿力吉奥信息科技有限公司 | 基于分布式数据库的gis应用系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631909B (zh) | 对大规模结构化和非结构化数据联合处理的系统及方法 | |
US11468103B2 (en) | Relational modeler and renderer for non-relational data | |
CN104252536B (zh) | 一种基于hbase的上网日志数据查询方法及装置 | |
CN104750681B (zh) | 一种海量数据的处理方法及装置 | |
CN106407303A (zh) | 数据存储、查询方法及装置 | |
CN106933833B (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
CN103729447A (zh) | 一种数据库快速检索的方法 | |
CN105183735A (zh) | 数据的查询方法及查询装置 | |
US10248680B2 (en) | Index management | |
CN103577440A (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
CN103646032A (zh) | 一种基于本体和受限自然语言处理的数据库查询方法 | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN102467521A (zh) | 一种易扩展的多级分类检索方法及系统 | |
CN104462421A (zh) | 基于键-值数据库的多租户扩展方法 | |
CN104050271A (zh) | 一种基于HBase的卡口数据处理方法 | |
Force et al. | Encouraging data citation and discovery with the Data Citation Index | |
CN104573022A (zh) | 一种HBase的数据查询方法及装置 | |
US10747824B2 (en) | Building a data query engine that leverages expert data preparation operations | |
Ramesh et al. | Data modelling for discrete time series data using Cassandra and MongoDB | |
CN106599040A (zh) | 一种面向云存储的分层索引方法与检索方法 | |
Srivastava et al. | Analysis of various NoSql database | |
CN104462161A (zh) | 基于分布式数据库的结构化数据查询方法 | |
CN106250443A (zh) | 基于内存全文检索解决数据库复杂文本查询的方法及系统 | |
CN104021210B (zh) | 以GeoJSON格式半结构化方式存储地理数据的MongoDB集群的地理数据读写方法 | |
CN101963993B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161221 |