CN106874429A - 一种标准sql转换成全文检索标准查询的方法 - Google Patents
一种标准sql转换成全文检索标准查询的方法 Download PDFInfo
- Publication number
- CN106874429A CN106874429A CN201710058874.6A CN201710058874A CN106874429A CN 106874429 A CN106874429 A CN 106874429A CN 201710058874 A CN201710058874 A CN 201710058874A CN 106874429 A CN106874429 A CN 106874429A
- Authority
- CN
- China
- Prior art keywords
- index
- sql
- condition
- converted
- standard
- 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.)
- Granted
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/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/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种标准SQL转换成全文检索标准查询的方法,通过通过自定义视图,确定检索的数据源;配置标准的SQL查询条件,利用BooleanQuery将标准SQL查询条件转化为全文检索的标准查询语句。实现了从标准SQL查询数据库转换为全文检索搜索索引库。本发明利用视图,采取自定义索引和自定义索引配置方式,可使索引方式自由掌控,按照所需加载数据,利用标准SQL查询数据库转换为利用全文检索技术搜索索引库,显著的提高查询速度和***的查询性能,降低数据库压力。
Description
技术领域
本发明涉及一种标准SQL转换成全文检索标准查询的方法。
背景技术
由于国产化起步相对较晚,目前市场上基础软硬件不够成熟,国产化整机性能较差,应用***在国产化环境中频繁出现访问加载慢,卡顿,不稳定等现象,尤其是在加载更新数据方面存在视图加载缓慢的问题。随着大数据的发展,数据储量越来越大,这一问题将愈加严重。
结构化查询语言(简称SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。现今最常见的查询数据的方式是通过SQL的select语句来查询数据库。但是随着数据库内的数据逐渐增多,查询数据的速度越来越慢。
为此,基于国产化操作***及硬件性能瓶颈的现状,必须提升基础开发运行环境的支撑能力,而全文检索是政务协同办公平台的最核心功能之一,全文检索技术是以数据诸如文字、声音、图像等为主要内容,以检索文献资料的内容而不是外表特征的一种检索技术。全文检索不同于与SQL查询数据库,全文检索技术是通过Query查询语句搜索索引库来查找数据,两者之间查询方式、查询语句不同。本发明人致力于将标准SQL转换为全文检索标准查询的研究,以提高查询效率。因此本发明提出一种标准SQL转换成全文检索标准查询的方法。
发明内容
本发明为解决查询数据和加载视图缓慢的问题,提供了一种标准SQL转换成全文检索标准查询的方法。
为实现上述目的,本发明采用的技术方案为:
一种标准SQL转换成全文检索标准查询的方法,包括:通过自定义视图,确定检索的数据源;配置标准的SQL查询条件,利用BooleanQuery将标准SQL查询条件转化为全文检索的的标准查询语句。
所述方法具体包括以下步骤:
步骤1、新增索引:在SQL查询视图中配置标准SQL语句;
步骤2、关联索引:在视图配置中新增所需视图,在视图中关联步骤1新增的索引并用全文检索的方式进行加载;
步骤3、索引字段和方式配置:在索引配置视图中配置标准SQL的查询条件;
步骤4、利用BooleanQuery将标准SQL转化成全文检索标准查询语句,其具体包括:
利用BooleanQuery组合查询将SQL中的条件字段按照所配置的标准SQL的查询条件组合起来构成索引条件;
将关联索引和索引条件结合起来组成索引查询语句,利用该索引查询语句在索引库中搜索相应的数据。
所述步骤4中,BooleanQuery组合查询条件之间的关系是由类BooleanClause.Occur控制,类BooleanClause.Occur提供了三个参数值:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT和BooleanClause.Occur.SHOULD;
若配置的标准SQL的查询条件为A and B,则会转化为索引条件A MUST B;
若标准SQL的查询条件为A or B,则会转化为索引条件A SHOULD B;
若标准SQL的查询条件为A not B,则会转化为索引条件A MUST_NOT B。
采用上述技术方案后,本发明具有以下优点:
1、利用视图,采取自定义索引和自定义索引配置方式,可使索引方式自由掌控,用户可以按照所需加载数据,无需再通过后台代码修改索引数据源、索引条件等。
2、从SQL语句向全文检索的Query查询语句的转换,加载视图时不再去查找数据库,而是利用全文检索来搜索索引库,使用全文检索来代替标准SQL查找数据,由原先的检索7万条数据,耗时将近0.7s,提升到了57万条数据,耗时0.15s,显著的提高了查询速度和***的查询性能。
附图说明
图1是本发明的流程简图;
图2是新增索引视图;
图3是关联索引视图;
图4是索引字段和方式配置视图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明揭示的一种标准SQL转换成全文检索标准查询的方法,包括以下步骤:
步骤1、新增索引:在SQL查询视图中配置标准SQL语句;具体在视图索引配置中新增所需索引,如图2所示,索引路径为索引的存储路径,SQL语句为索引的数据来源;
步骤2、关联索引:如图3所示,在视图配置中新增所需视图,在视图中关联步骤1新增的索引并用全文检索的方式进行加载;
步骤3、索引字段和方式配置:如图4所示,在索引配置视图中配置标准SQL的查询条件;
步骤4、利用BooleanQuery将标准SQL转化成全文检索标准查询语句,其具体包括:
利用BooleanQuery组合查询将SQL中的条件字段按照所配置的标准SQL的查询条件组合起来构成索引条件;条件字段为索引查找的关键字段,且这些字段需为前面所选关联索引里的字段;参数值为所需条件字段的对应值;比较方式为条件字段与参数值之间的关系,关系包括等于、大于、小于、包含等;组合方式是指多个条件字段的组合查询方式,有与(and)、或(or)两种方式;
由于标准SQL查询语言与全文检索标准查询语言不同,这里利用全文检索的BooleanQuery组合查询,将这些条件字段按照所配置的方式组合起来,把标准SQL查询条件转化为索引条件,即将关联索引和索引条件结合起来组成索引查询语句,利用该索引查询语句在索引库中搜索相应的数据。当视图模块加载时,不再去查找数据库,而是利用转化后的全文检索Query查询语句来搜索索引,最后将索引对应的数据加载到页面。
上述步骤4中,BooleanQuery组合查询条件之间的关系是由类BooleanClause.Occur控制,类BooleanClause.Occur提供了三个参数值:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT和BooleanClause.Occur.SHOULD;
若配置的标准SQL的查询条件为A and B,则会转化为索引条件A MUST B;
若标准SQL的查询条件为A or B,则会转化为索引条件A SHOULD B;
若标准SQL的查询条件为A not B,则会转化为索引条件A MUST_NOT B。
例如图2和4所示的配置,是查找索引中INSTANCE_STATE字段等于0并且INSTANCE_NODE_TRANSACTOR_0字段等于#{USER_UNID}或者INSTANCE_TEMP_NODE_TRAN_ID字段包含#{USER_UNID}的相应数据。通过BooleanQuery转换为全文检索标准查询条件变成:INSTANCE_STATE=0MUST INSTANCE_NODE_TRANSACTOR_0=#{USER_UNID}SHOULDINSTANCE_TEMP_NODE_TRAN_ID LIKE‘%#{USER_UNID}%’。再结合之前的配置的关联索引,可以组成一条索引查询语句。
本发明的重点在于:采用自定义索引和自定义索引配置方式,可使索引方式自由掌控,按照所需来加载数据。本发明实现了从用SQL语句搜索数据库向用全文检索的Query查询语句查找索引的转换,用全文检索来搜索数据降低了数据库压力,大大提升整体性能。
本发明是将标准SQL转换为全文检索标准查询,用全文检索技术搜索索引库来代替标准SQL查询数据库,加载视图的数据时不再去数据库查找数据,而是转变为搜索索引库,解决了国产化环境中应用***数据查找慢、视图加载缓慢的问题。
本发明技术优势更是在于可以利用视图来自定义索引、自定义索引的条件,自由掌控索引方式,用户可以按照自己的需求来定义索引加载数据,不用再去修改程序代码,方便灵活。另外,利用本发明来查找数据、加载视图,由原先的检索7万条数据,耗时将近0.7s,提升到了57万条数据,耗时0.15s,大大提高了查询速度和***的查询性能。
上面说明并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (3)
1.一种标准SQL转换成全文检索标准查询的方法,其特征在于,包括:通过自定义视图,确定检索的数据源;配置标准的SQL查询条件,利用BooleanQuery将标准SQL查询条件转化为全文检索的的标准查询语句。
2.如权利要求1所述的一种标准SQL转换成全文检索标准查询的方法,包括以下步骤:所述方法具体包括以下步骤:
步骤1、新增索引:在SQL查询视图中配置标准SQL语句;
步骤2、关联索引:在视图配置中新增所需视图,在视图中关联步骤1新增的索引并用全文检索的方式进行加载;
步骤3、索引字段和方式配置:在索引配置视图中配置标准SQL的查询条件;
步骤4、利用BooleanQuery将标准SQL转化成全文检索标准查询语句,其具体包括:
利用BooleanQuery组合查询将SQL中的条件字段按照所配置的标准SQL的查询条件组合起来构成索引条件;
将关联索引和索引条件结合起来组成索引查询语句,利用该索引查询语句在索引库中搜索相应的数据。
3.如权利要求2所述的一种标准SQL转换成全文检索标准查询的方法,包括以下步骤:所述步骤4中,BooleanQuery组合查询条件之间的关系是由类BooleanClause.Occur控制,类BooleanClause.Occur提供了三个参数值:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT和BooleanClause.Occur.SHOULD;
当配置的标准SQL的查询条件为A and B时,则会转化为索引条件A MUST B;
当标准SQL的查询条件为A or B时,则会转化为索引条件A SHOULD B;
当标准SQL的查询条件为A not B时,则会转化为索引条件A MUST_NOT B。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058874.6A CN106874429B (zh) | 2017-01-23 | 2017-01-23 | 一种标准sql转换成全文检索标准查询的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058874.6A CN106874429B (zh) | 2017-01-23 | 2017-01-23 | 一种标准sql转换成全文检索标准查询的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106874429A true CN106874429A (zh) | 2017-06-20 |
CN106874429B CN106874429B (zh) | 2020-08-11 |
Family
ID=59159036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710058874.6A Active CN106874429B (zh) | 2017-01-23 | 2017-01-23 | 一种标准sql转换成全文检索标准查询的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874429B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943995A (zh) * | 2017-09-22 | 2018-04-20 | 国网重庆市电力公司电力科学研究院 | 一种sql查询结果列名及编码自动转换方法 |
CN109271428A (zh) * | 2018-09-11 | 2019-01-25 | 北京市计算中心 | 数据抽取方法及基于地理信息的数据展示方法 |
CN112632107A (zh) * | 2020-12-31 | 2021-04-09 | 恒安嘉新(北京)科技股份公司 | 一种检索方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158958A (zh) * | 2007-10-23 | 2008-04-09 | 浙江大学 | 基于MySQL存储引擎的融合查询方法 |
US20110093486A1 (en) * | 2009-10-15 | 2011-04-21 | Institute For Information Industry | Data query method, data query system and computer readable and writable recording medium |
CN103530351A (zh) * | 2013-09-30 | 2014-01-22 | 金铠川(天津)科技发展有限公司 | 一种网络数据信息的搜索方法 |
CN106227788A (zh) * | 2016-07-20 | 2016-12-14 | 浪潮软件集团有限公司 | 一种以Lucene为基础的数据库查询方法 |
-
2017
- 2017-01-23 CN CN201710058874.6A patent/CN106874429B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158958A (zh) * | 2007-10-23 | 2008-04-09 | 浙江大学 | 基于MySQL存储引擎的融合查询方法 |
US20110093486A1 (en) * | 2009-10-15 | 2011-04-21 | Institute For Information Industry | Data query method, data query system and computer readable and writable recording medium |
CN103530351A (zh) * | 2013-09-30 | 2014-01-22 | 金铠川(天津)科技发展有限公司 | 一种网络数据信息的搜索方法 |
CN106227788A (zh) * | 2016-07-20 | 2016-12-14 | 浪潮软件集团有限公司 | 一种以Lucene为基础的数据库查询方法 |
Non-Patent Citations (1)
Title |
---|
尤梅等: ""基于Exchange文档数据库的全文索引技术"", 《计算机工程与科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943995A (zh) * | 2017-09-22 | 2018-04-20 | 国网重庆市电力公司电力科学研究院 | 一种sql查询结果列名及编码自动转换方法 |
CN107943995B (zh) * | 2017-09-22 | 2022-03-08 | 国网重庆市电力公司电力科学研究院 | 一种sql查询结果列名及编码自动转换方法 |
CN109271428A (zh) * | 2018-09-11 | 2019-01-25 | 北京市计算中心 | 数据抽取方法及基于地理信息的数据展示方法 |
CN112632107A (zh) * | 2020-12-31 | 2021-04-09 | 恒安嘉新(北京)科技股份公司 | 一种检索方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106874429B (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631948B (zh) | 命名实体的识别方法 | |
CN103810212B (zh) | 一种数据库索引的自动创建方法及*** | |
CN109840256B (zh) | 一种基于业务实体的查询实现方法 | |
US20110093486A1 (en) | Data query method, data query system and computer readable and writable recording medium | |
US20190138522A1 (en) | Query translation for searching complex structures of objects | |
US20050240570A1 (en) | Partial query caching | |
CN102768674B (zh) | 一种基于路径结构的xml数据存储方法 | |
CN106874429A (zh) | 一种标准sql转换成全文检索标准查询的方法 | |
US9317556B2 (en) | Accelerating database queries containing bitmap-based conditions | |
US8543614B2 (en) | Packing nodes into records to store XML XQuery data model and other hierarchically structured data | |
CN105843960B (zh) | 基于语义树的索引方法和*** | |
CN102054007A (zh) | 一种检索方法及检索装置 | |
US10997131B1 (en) | Using a member attribute to perform a database operation on a computing device | |
CN102760165B (zh) | 一种使用位图索引的全文检索方法和装置 | |
CN106777343A (zh) | 增量分布式索引***和方法 | |
CN107436911A (zh) | 模糊查询方法、装置及查询*** | |
CN111435347A (zh) | 数据库中关系表的高效扩展方法和*** | |
CN110222238A (zh) | 字符串与识别符双向映射的查询方法和*** | |
CN106503195A (zh) | 一种基于搜索引擎的翻译词库检索方法及*** | |
CN102346735A (zh) | 一种减少哈希冲突的哈希查找方法 | |
US20120310948A1 (en) | Indexing for Regular Expressions in Text-Centric Applications | |
US11238084B1 (en) | Semantic translation of data sets | |
US8756246B2 (en) | Method and system for caching lexical mappings for RDF data | |
CN101221565A (zh) | 一种利用嵌入式数据库对flash数据进行管理的方法 | |
US20200201834A1 (en) | Systems and methods of efficient extensions of relational tables in a database |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |