一种基于Oracle数据库的海量中文数据查询方法及系统技术方案

技术编号:10964199 阅读:103 留言:0更新日期:2015-01-28 16:32
本发明专利技术涉及一种基于Oracle数据库的海量中文数据查询方法及系统,所述方法包括:步骤1,在Oracle数据库层创建基于中文字段的文本索引;步骤2,创建两个Job,一个Job用于给Oracle数据库中的新增数据添加文本索引,另一个Job用于优化Oracle数据库中所有数据的文本索引;步骤3,在Oracle数据库层执行两个job;步骤4,根据创建的文本索引,采用SQL语句在Oracle数据库中进行中文字段查询。本发明专利技术在中文字段上建立文本索引,然后建立job定时地去给新增的数据建立索引和优化已经建立的索引,效率高,易于维护,适合大数据的查询。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种基于Oracle数据库的海量中文数据查询方法及系统,所述方法包括:步骤1,在Oracle数据库层创建基于中文字段的文本索引;步骤2,创建两个Job,一个Job用于给Oracle数据库中的新增数据添加文本索引,另一个Job用于优化Oracle数据库中所有数据的文本索引;步骤3,在Oracle数据库层执行两个job;步骤4,根据创建的文本索引,采用SQL语句在Oracle数据库中进行中文字段查询。本专利技术在中文字段上建立文本索引,然后建立job定时地去给新增的数据建立索引和优化已经建立的索引,效率高,易于维护,适合大数据的查询。【专利说明】一种基于Oracle数据库的海量中文数据查询方法及系统
本专利技术涉及IT行业浏览器和数据库大数据量查询交互领域,特别是涉及一种基 于Oracle数据库的海量中文数据查询方法及系统。
技术介绍
在很多的系统中,经常会遇到对中文字符的模糊查询,比如:关于系统的地址管 理,数据量大概是上千万的地址数据,然后我们经常会根据名称来检索这些中文数据,传统 的模糊查询采用的是 :like"% XXXX% 〃这种方式来查询,这种方式会进行全表的扫描检 索,在数据量比较小的系统中能够基本满足用户的需求,遇到上百万、甚至上千万的数据的 时候,这种方式基本就做废了,查询速度非常地慢。因此,本专利技术提出了一种适合大数据查 询的海量中文数据查询方法及系统。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于Oracle数据库的海量中文数据查询 方法及系统,用于解决数据量大的中文数据查询方法及系统。 本专利技术解决上述技术问题的技术方案如下:一种基于Oracle数据库的海量中文 数据查询方法,包括: 步骤1,在Oracle数据库层创建基于中文字段的文本索引; 步骤2,创建两个Job,一个Job用于给Oracle数据库中的新增数据添加文本索 弓丨,另一个Job用于优化Oracle数据库中所有数据的文本索引; 步骤3,在Oracle数据库层执行两个job ; 步骤4,基于经两个Job处理后的文本索引,采用SQL语句在Oracle数据库中进行 中文字段查询。 在上述技术方案的基础上,本专利技术还可以做如下改进。 进一步,所述步骤1具体包括: 步骤11,删除Oracle数据库层中原有的词法分析器,并基于中文字段新建词法分 析器; 步骤12,删除Oracle数据库层中原有的非索引字表类,并基于中文字段新建非索 引字表类; 步骤13,基于新建的非索引字表类创建非索引字表,该非索引字表中定义了所有 不适用于进行数据查询的词语; 步骤14,在Oracle数据库中,对非索引字表中定义的词语以外的所有中文字段创 建文本索引。 进一步,还包括对创建的文本索引进行校验。 进一步,所述对创建的文本索引进行校验包括:若能成功调用SQL语句中的 contains命令进行查询,贝U表明文本索引创建成功。 进一步,所述步骤2中,采用PLSQL工具创建job。 进一步,所述步骤2还包括:在创建Job时,设置Job执行的时间间隔。 本专利技术的技术方案还包括一种基于Oracle数据库的海量中文数据查询系统,包 括: 索引创建模块,其用于在Oracle数据库层创建基于中文字段的文本索引; Job创建模块,其用于创建两个Job,一个Job用于给Oracle数据库中的新增数据 添加文本索引,另一个Job用于优化Oracle数据库中所有数据的文本索引; Job执行模块,其用于在Oracle数据库层执行两个job ; 查询模块,其用于基于经两个Job处理后的文本索引,采用SQL语句在Oracle数 据库中进行中文字段查询。 进一步,所述索引创建模块包括: 词法分析器处理模块,其用于删除Oracle数据库层中原有的词法分析器,并基于 中文字段新建词法分析器; 非索引字表类处理模块,其用于删除Oracle数据库层中原有的非索引字表类,并 基于中文字段新建非索引字表类; 非索引字表创建模块,其用于基于新建的非索引字表类创建非索引字表,该非索 引字表中定义了所有不适用于进行数据查询的词语; 文本索引建立模块,其用于在Oracle数据库中,对非索引字表中定义的词语以外 的所有中文字段创建文本索引。 进一步,还包括校验模块,其用于对创建的文本索引进行校验。 进一步,所述非索引字表类处理模块采用PLSQL工具创建job。 本专利技术的有益效果是:本专利技术在中文字段上建立文本索引,然后建立job定时地 去给新增的数据建立索引和优化已经建立的数据的索引,这种方式效率高,且维护起来也 很容易,适合大数据的查询。通过这种技术可以改善现在系统中模糊查询存在的查询慢问 题,有利于提商系统的整体性能。 【专利附图】【附图说明】 图1为本专利技术所述基于Oracle数据库的海量中文数据查询方法的流程示意图; 图2为本专利技术本专利技术所述基于Oracle数据库的海量中文数据查询系统的结构示 意图。 【具体实施方式】 以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并 非用于限定本专利技术的范围。 如图1所示,本实施例给出了一种基于Oracle数据库的海量中文数据查询方法, 包括: 步骤1,在Oracle数据库层创建基于中文字段的文本索引; 步骤2,创建两个Job,一个Job用于给Oracle数据库中的新增数据添加文本索 弓丨,另一个Job用于优化Oracle数据库中所有数据的文本索引; 步骤3,在Oracle数据库层执行两个job; 步骤4,基于经两个Job处理后的文本索引,采用SQL语句在Oracle数据库中进行 中文字段查询。本实施例中所述步骤1具体包括: 步骤11,删除Oracle数据库层中原有的词法分析器,并基于中文字段新建词法分 析器; 步骤12,删除Oracle数据库层中原有的非索引字表类,并基于中文字段新建非索 引字表类; 步骤13,基于新建的非索引字表类创建非索引字表,该非索引字表中定义了所有 不适用于进行数据查询的词语; 步骤14,在Oracle数据库中,对非索引字表中定义的词语以外的所有中文字段创 建文本索引。 此外,还需要对创建的文本索引进行校验,具体方法为:若能调用SQL语句中的 contains命令进行查询,贝U表明文本索引创建成功。 本实施例采用PLSQL工具创建job,且设置Job执行的时间间隔,比如可以设置用 于给Oracle数据库中的新增数据添加文本索引的Job每15分钟执行一次,设置用于优化 Oracle数据库中所有数据的文本索引的Job每天执行一次。 对应地,本实施例还给出了一种基于Oracle数据库的海量中文数据查询系统,如 图2所示,包括: 索引创建模块,其用于在Oracle数据库层创建基于中文字段的文本索引; Job创建模块,其用于创建两个Job,一个Job用于给Oracle数据库中的新增数据 添加文本索引,另一个Job用于优化Oracle数据库中所有数据的文本索引; Job执行模块,其用本文档来自技高网...

【技术保护点】
一种基于Oracle数据库的海量中文数据查询方法,其特征在于,包括:步骤1,在Oracle数据库层创建基于中文字段的文本索引;步骤2,创建两个Job,一个Job用于给Oracle数据库中的新增数据添加文本索引,另一个Job用于优化Oracle数据库中所有数据的文本索引;步骤3,在Oracle数据库层执行两个Job;步骤4,基于经两个Job处理后的文本索引,采用SQL语句在Oracle数据库中进行中文字段查询。

【技术特征摘要】

【专利技术属性】
技术研发人员:姜连海
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1