CN108446289A - 一种支持异构数据库的数据检索方法 - Google Patents
一种支持异构数据库的数据检索方法 Download PDFInfo
- Publication number
- CN108446289A CN108446289A CN201710878815.3A CN201710878815A CN108446289A CN 108446289 A CN108446289 A CN 108446289A CN 201710878815 A CN201710878815 A CN 201710878815A CN 108446289 A CN108446289 A CN 108446289A
- Authority
- CN
- China
- Prior art keywords
- retrieval
- sentence
- search
- expression
- database
- 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/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
-
- 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
-
- 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/2453—Query optimisation
-
- 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/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种支持异构数据库的数据检索方法,包括下列步骤:(1)检索系统包含检索语句解析模块和检索条件转换模块,用户输入需要检索的简单语句或者复杂语句,检索语句解析模块对检索语句进行解析,并且把解析的结果转换成统一查询结构;(2)检索条件转换模块对查询结构进行解析,然后根据数据库的具体类型,从查询转换器中选择合适的适配器转换为数据库支持的查询表达式语句。所述支持异构数据库的数据检索方法能够根据具体的数据库类型,选用合适的适配器重新生成该数据库支持的查询语句。
Description
技术领域
本发明涉及大数据处理领域,尤其涉及一种支持异构数据库的数据检索方法,支持多种异构数据库中检索数据,支持结构化和非结构化检索条件的混合使用。
背景技术
随着互联网技术的快速发展,数据中心数据的规模和种类也在飞速增长。大数据在接受度、技术、应用等各个方面趋于成熟,开始步入产业的快速发展阶段,大数据巨大的应用价值带动了大数据行业的迅速发展。大数据中包括大量结构化和非结构化数据,尤其是以文本等为代表的非结构化数据。
对于结构化数据的查询一般采用SQL或类SQL语法,SQL语句比较灵活且功能强大,但对于查询一些文本类型的数据还是有很大的局限。对于文本信息的检索,一般采用关键词检索、短语检索和通配符(*)检索,支持通过与、或、非逻辑运算符连接多个条件,但无法用于比较复杂的查询语句或带有嵌套查询的情况。
发明内容
本发明提供了一种支持异构数据库的数据检索方法,用于实现复杂的结构化和非结构化数据的组合检索、统计功能,并且可以通过扩展适配器的方式,支持多种异构的关系型数据库和全文数据库。其技术方案如下所述:
一种支持异构数据库的数据检索方法,包括下列步骤:
(1)检索系统包含检索语句解析模块和检索条件转换模块,用户输入需要检索的简单语句或者复杂语句,检索语句解析模块对检索语句进行解析,并且把解析的结果转换成统一查询结构;
(2)检索条件转换模块对查询结构进行解析,然后根据数据库的具体类型,从查询转换器中选择合适的适配器转换为数据库支持的查询表达式语句。
所述简单语句就是一个只包含检索条件的语句;复合语句是通过管道符号或者连接符号连接起来的多个语句,复合语句的第一个语句为检索条件。
对于简单语句,本发明支持关键词、短语和通配符的检索,支持字段值匹配的检索,支持布尔表达式的检索,支持正则表达式的检索。
所述复合语句的命令包括以下类型:生成命令、数据源命令、字段值运算、字段值过滤、字段选择、分组命令、统计命令、排序命令、连接命令和子检索,这些命令在一定约束条件下能够组合使用。
检索语句解析模块包含表达式解析模块和查询解析模块两个子模块,表达式解析模块首先通过词法分析器对检索语句进行词法分析,然后通过检索解析器对检索命令进行解析,提取出所有的命令及相应的参数信息,最后生出SDL的检索表达式;查询解析模块把SDL检索表达式转换一个通用的查询结构。
表达式解析模块中,表达式解析器接收到待解析的检索语句,通过词法解析器对检索语句进行词法分析,然后提取每个检索子句传递给检索解析器进行命令解析及命令参数的提取,最后把命令解析结果进行汇总分析,生成 SDL检索表达式。
词法解析器对检索语句进行词法分析,把检索语句从一个字符序列转换为单词序列,词法解析器设置的词法分析器用于扫描、识别单词,并且对识别出的单词进行分类标记,单词分类包括:标识符、字符串、数字、变量、字符、操作符;
命令解析器对检索语句进行语法分析,从词法分析器输出的单词序列中取出单词进行分析,首先判断取得的单词是否是搜索命令,如果是搜索命令,则对命令进行解析并且对命令的参数进行表达式解析,生成检索表达式;
检索表达式用来保存命令及参数的解析结果,解析结果主要包括:检索源、检索结果项、检索条件、检索分组条件、检索排序条件、检索结果记录数条件。
查询解析器对表达式解析器生成的检索表达式进行解析,生成统一的查询结构,包括下列步骤:
1)对检索结果字段进行解析,生成Field结构;
2)对检索源进行解析,生成From结构;
3)对检索条件进行解析,生成Where结构;
4)对子检索进行解析,生成SubQuery结构;
5)对检索结果记录数进行解析,取得返回结果的最大条数;
6)对检索结果的排序条件进行解析,生成Order结构;
7)对检索分组条件进行解析,生成Group结构。
所述查询结构用来保存查询解析器对于检索表达式的解析结果,包括以下类型的结构:字段结构、条件结构、分组结构、排序结构、数据源结构、子查询结构。
检索语句解析模块还包括条件解析器,用来对查询条件进行解析,生成条件结构。
所述支持异构数据库的数据检索方法能够根据具体的数据库类型,选用合适的适配器重新生成该数据库支持的查询语句。
附图说明
图1是本发明中系统总体架构的示意图;
图2是系统处理流程的示意图;
图3是所述语句解析模块设计的示意图;
图4是所述检索语句解析模块的处理流程的示意图;
图5是所述表达式解析模块的处理流程的示意图;
图6是查询解析模块的处理流程的示意图;
图7是所述检索条件转换模块的示意图;
图8是查询条件转换模块的处理流程的示意图。
具体实施方式
本发明公开了一种数据检索方法及装置,用于实现复杂的结构化和非结构化数据的组合检索、统计功能,并且可以通过扩展适配器的方式,支持多种异构的关系型数据库和全文数据库。具体方法如下:
用户可以输入检索语句(SDL,搜索描述语言),可以是简单语句,也可以是复合语句。简单语句就是一个只包含查询条件的语句,查询条件可以是关键词、短语、正则表达式,或者字段值比较等条件,支持多个条件的与、或、非逻辑组合。复合语句是通过管道符号(‘|’)或者其它自己定义的连接符号连接起来的多个语句,管道(连接)符号用于指示将符号左侧的语句的处理结果作为符号右侧语句的输入,从而实现复杂的组合检索及统计分析功能。
SDL解析器对检索语句进行解析,首先由词法解析器进行词法解析,判断词法是否正确,然后依次对各个命令进行词法解析,提取出每个命令及参数;词法解析完成后,命令解析器将会对所有的命令及参数进行详细的解析,并且把解析的结果进行分类汇总,转换成统一的搜索表达式;最后根据具体的数据库类型,选用合适的适配器重新生成该数据库支持的查询语句。
一、检索语句的设计和组成
检索语句分为简单语句和复合语句,简单语句就是一个只包含检索条件的语句。复合语句是通过管道符号(‘|’)或者其它自定义的连接符号连接起来的多个语句,复合语句的第一个语句为检索条件。
1、简单语句
1)关键词、短语和通配符
检索一个或多个关键词时,如果检索多个关键字,则不区分这些词的先后顺序,且查询结果将同时包含这些词。例如用户如果输入查询条件:你好中国,相当于你好AND中国,即检索结果中必须包含关键词“你好”与“中国”。
如果需要检索短语(即短语内的内容必须保持原样出现),需要用双引号把短语引起来。例如查询“你好中国”,匹配的内容中也必须包含“你好中国”,而“你好我们的中国”则认为是不匹配。
使用星号通配符(*)可匹配字符串中任意数量的字符,问号通配符(?)只能匹配1个字符。只搜索*意味着“全部匹配”,而且将会检索所有事件。例如:name='abc*'和name='ab?',都会匹配name为'abc'的事件;name ='yourname?',匹配name为'yourname1'的事件,但无法匹配name为'yourname' 的事件。
2)字段值匹配
可以使用比较运算符匹配某个特定值或系列字段值。
3)布尔表达式
检索条件支持布尔运算符:与(AND、&&)、或(OR、||)和非(NOT),运算符必须?写,可以通过小括号“()”改变运算优先级。运算符的优先级由高到低依次为:()、非(NOT)、与(AND、&&)、或(OR、||)。
两个关键词之间始终隐含有AND运算符,即:hello world与hello AND world相同。NOT运算符如果要运用于多个表达式,则必须把这些表达式用括号括起来。
4)正则表达式
检索条件持正则表达式,格式为:字段名称regexp'regexpress'
支持[](范围),{n}(出现n次),{n,m}(出现n次到m次),{n,}(至少出现 n次)等基本正则表达式。例如:field regexp'all[123]',匹配包含all1、all2 或all3的记录;fieldregexp'mail[0-9]{2}',匹配mail后面带有2位数字的记录。
2、复合语句
复合语句是通过管道符号(‘|’)或者其它自定义的连接符号连接起来的多个语句,复合语句的第一个语句为检索条件,其它的语句都以相关命令开头。用户可以通过直接输入复合语句进行检索,实现较为复杂的关联分析、建立新字段、对字段进行数值运算等。复合语句的命令主要分为以下类型:生成命令、数据源命令、字段值运算、字段值过滤、字段选择、分组命令、统计命令、排序命令、连接命令和子检索,这些命令在一定约束条件下可以组合使用。
1)生成命令(search)
search命令属于生成命令,可以通过使用关键字、短语、字段值、布尔表达式和比较表达式来准确指定所希望检索到的事件。搜索条件开头的 search命令可以省略。例如,关键字搜索:search error login;短语搜索:search "web error";布尔运算符:searchlogin AND(err OR fail);通配符:search fail*;字段值:search status=200;正则表达式:search name regexp'abc[0-3]{1}'。
2)数据源命令(source)
source命令用来选择数据类型(类似于关系数据库的表或者全文库里的文档类型),source命令必须与生成命令一起使用,格式为:search检索条件source数据类型。如果检索时没有通过source指定数据类型,则默认为从所有的数据类型中进行检索。
3)字段值运算(eval)
eval命令计算表达式的值并将结果保存到目标字段中,若该目标字段与现有字段名称相同,则将计算结果覆盖现有字段的值。eval命令支持算术运算、字符串运算以及布尔运算。eval命令格式为:eval field=eval_func(field_list),支持括号()、算数(*、/、%、+、-)、关系(=、!=、 >=、>、<=、<)、逻辑(&&、||)等操作符,另外还支持max、min、log、 abs、floor、case等计算函数。
4)字段值过滤(where)
where命令使用表达式过滤搜索结果,只保留表达式计算结果为true的事件,其它的给以丢弃。如果表达式执行返回非布尔类型的结果,或者执行过程中出错,则认为返回结果为false。例如:...|where status=200。
5)字段选择(fields)
fields命令对搜索结果的字段进行选择,命令格式为:fields fieldname,include('fieldname'),exclude('fieldname')。
在include和exclude参数中的fieldname支持通配符,例如:fields balance,include('*Name'),exclude('lastName')。
6)分桶命令(bucket)
bucket命令对字段进行分桶(分组),将字段的连续值转换为离散的多个值集合,属于同一个集合的字段值将拥有同一个值。bucket命令支持三种切分方式:按照固定时间或数值段切分、指定数值范围进行切分、指定时间范围进行切分。
bucket命令格式为:bucket<field>[<option>][AS<newfield>],其中 option为:span(<span-len>)、range(<ranges>)、time_range(<time_ranges>)。 span-len可以是数值或者时间刻度单位us(微秒)、s(秒)、m(分钟)、h (小时)、d(天)、w(周)、M(月);ranges是一组以逗号分隔的数值,如range(20,25,30,35,40)表示把数据分为20-25、25-30、30-35、35-40等4 组;time_ranges是一组以逗号分隔的时间区间,如time_range((2017-11-1100:00:00,2017-11-1101:00:00),(2017-11-1111:00:00,2017-11-1112:00:00))。
7)统计命令(stats)
stats命令提供统计功能,可以根据设定字段进行group操作。stats命令格式为:stats stats_function(field)[as newfield][by field_list]。field可以是事件中已经提取的字段,也可以是eval命令生成的新字段。比如:eval c=a+b| stats avg(c)。
stats支持的聚合类型如下:1)简单聚合,例如:stats count(*)by class; 2)多重聚合,例如:stats count(*)by(class,gender),(age);数值范围聚合,例如:statscount(age)by range(age,20,25,30,35,40);时间范围聚合,例如: stats online date_range(insert_time,'format'='yyyy-MM-dd','2016-06-18', '2016-06-17','now-5d','now-4d','now-3d','now')。stats支持的聚合函数包括: sum、min、max、avg、count、distinct_count等。
8)排序命令(sort、head)
sort命令按指定字段对结果进行排序,可以通过参数指定排序顺序为降序或升序。命令格式为:sort by sort_item[,sort_item]*[desc|asc]。例如:* |sort by lengthdesc,检索结果按照length的值降序排列。
head命令用于指定在检索结果中,保留前N条结果。命令格式为:head [<N>],例如:...|head 100,表示检索结果中仅返回前100条结果。
9)连接命令(join)
join命令类似于SQL的连接,将来自主管道的检索结果与来自子管道的检索结果连接在起。join命令格式为:join[options][field-list]subsearch。 options的语法:type=(inner|outer|left)|overwrite=<bool>|max=<int>;type 参数类似与SQL语言的inner、outer和left,inner连接与left(或outer)连接的差别在于:两者在未匹配到任何子检索事件时,主检索中如何对待事件。对于内部连接和左连接这两种类型,都是对匹配的事件进行连接。inner连接的结果不包含来自主检索(在子检索中没有匹配项)的事件,left(或outer) 连接的结果包括主搜索中的所有事件。overwrite参数标识来自子结果的字段是否覆盖来自主结果的字段(如果两者字段名相同)。max参数指定每个主检索结果可以连接的最大子检索结果数,若设置为max=0,则无限制。 field-list是join的字段列表,要求子检索参与join的字段名和当前检索的字段名相同。例如:...|join pid max=0[searchvendor],表示以pid为连接条件,合并主检索和子检索search vendor的结果。
10)子检索
子检索常用于作为另外一个SDL命令的参数,子检索被包含在方括号[] 中,将在外部命令执行之前被执行。子检索执行的结果一般将作为外部SDL 的参数,或者作为一个独立的检索结果join到主检索结果中。
本发明中,系统总体架构如图1所示,检索系统主要包含检索语句解析模块和检索条件转换模块,其中检索语句解析模块对检索语句进行解析,并且把解析的结果转换成统一查询结构;检索条件转换模块对统一查询结构进行解析,转换为具体数据库支持的查询语句。
检索语句解析模块包含表达式解析模块和查询解析模块两个子模块。表达式解析模块首先通过词法分析器对检索语句进行词法分析,然后通过检索解析器对检索命令进行解析,提取出所有的命令及相应的参数信息,最后胜出SDL的检索表达式。查询解析模块把SDL检索表达式转换一个通用的查询结构。
系统处理流程如图2所示,可以对系统总体架构做进一步的解释。
语句解析模块设计如图3所示,检索语句解析模块的处理流程如图4所示,各模块的具体功能如下:
1、表达式解析器:接收到待解析的检索语句,通过词法解析器对检索语句进行词法分析,然后提取每个检索子句传递给检索解析器进行命令解析及命令参数的提取,最后把命令解析结果进行汇总分析,生成检索表达式。表达式解析模块的处理流程如图5所示。
2、词法解析器:对检索语句进行词法分析,把检索语句从一个字符序列转换为单词(Token)序列。词法分析器的核心任务是扫描、识别单词,并且对识别出的单词进行分类标记,单词分类主要包括:标识符、字符串、数字、变量、字符、操作符等。
3、命令解析器:对检索语句进行语法分析,从词法分析器输出的单词序列中取出单词(Token)进行分析。首先判断取得的单词是否是搜索命令,如果是搜索命令,则对命令进行解析并且对命令的参数进行表达式解析,生成检索表达式。
4、检索表达式:检索表达式用来保存命令及参数的解析结果,解析结果主要包括:检索源(SDLSource)、检索结果项(SearchItem)、检索条件(SDLExpr)、检索分组条件(SDLBucket)、检索排序条件(SDLSort)、检索结果记录数条件(SDLLimit)。
5、查询解析器:对表达式解析器生成的检索表达式进行解析,生成统一的查询结构。查询解析模块的处理流程如图6所示,具体过程如下:
1)对检索结果字段进行解析,生成Field结构。
2)对检索源进行解析,生成From结构。
3)对检索条件进行解析,生成Where结构。
4)对子检索进行解析,生成SubQuery结构。
5)对检索结果记录数进行解析,取得返回结果的最大条数。
6)对检索结果的排序条件进行解析,生成Order结构。
7)对检索分组条件进行解析,生成Group结构。
6、查询结构:查询结构是一个更完整、扩展性更强的查询表达结构,用来保存查询解析器对于检索表达式的解析结果。主要包括以下类型的结构:字段结构(Field)、条件结构(Where)、分组结构(Group)、排序结构(Order)、数据源结构(From)、子查询结构(SubQuery)。
7、条件解析器:条件解析器的主要作用是用来对查询条件进行解析,生成条件结构(Where)。
检索条件转换模块对查询结构进行解析,然后根据数据库的具体类型,从查询转换器中选择合适的适配器转换为数据库支持的查询表达式语句。检索条件转换模块如图7所示。
检索条件转换模块对查询结构进行解析,然后根据数据库的具体类型,从查询转换器中选择合适的适配器转换为数据库支持的查询表达式语句。查询条件转换模块的处理流程如图8所示。
所述支持异构数据库的数据检索方法能够根据具体的数据库类型,选用合适的适配器重新生成该数据库支持的查询语句。
下面的实施例描述中假设全文库为ElasticSearch、SQL数据库假设为 MySQL数据库,实际使用时可以支持其它全文库、SQL数据库及HBase列存数据库等,只需要增加相应的转换适配器即可。
实施例1简单语句:天空
1)检索语句解析模块首先判断第一个单词,发现不是search命令,则在语句前添加search命令,把检索语句转换为:search天空,然后把检索语句传递给表达式解析器进行解析。
2)表达式解析器从词法解析器获取一个单词,发现是search命令,调用检索解析器对命令进行解析,生成SDL检索表达式:
SDLSource:all
SearchItem:all
SDLExpr:key='天空'
3)查询解析器对SDL检索表达式进行解析,生成查询结构:
4)检索条件转换模块首先判断查询结构中From的值为*,说明是一个全文检索,然后生成全文库(例如ElasticSearch)的查询转换器,最后通过查询转换器把查询结构转换为ElasticSearch支持的 DSL查询语句:
实施例2复合语句:search*|source student|where score>85AND gender='m'|fields id,name,age,class,score|sort by score desc|limit 20
1)检索语句解析模块首先判断第一个单词,发现是search命令,然后把检索语句传递给表达式解析器进行解析。
2)表达式解析器从词法解析器获取单词,调用检索解析器对命令进行解析,直至语句结束,最后生成SDL检索表达式:
3)查询解析器对SDL检索表达式进行解析,生成查询结构:
4)检索条件转换模块首先取的From的值为student,判断出这需要到结构化库中进行查询,然后生成结构化数据库(例如MySQL)的查询转换器,最后通过查询转换器把查询结构转换为MySQL支持的SQL查询语句:
select top 20 id,name,age,class,score from student where score>85 ANDgender='m'order by score desc
实施例3复合语句:search("error"OR"err")AND respcode>300| sourceaccesslog|stats distinct_count(clientip)AS Refers by referer|sort by Refersdesc
1)检索语句解析模块首先判断第一个单词,发现是search命令,然后把检索语句传递给表达式解析器进行解析。
2)表达式解析器从词法解析器获取单词,调用检索解析器对命令进行解析,直至语句结束,最后生成SDL检索表达式:
3)查询解析器对SDL检索表达式进行解析,生成查询结构:
4)检索条件转换模块首先取的From的值为accesslog,判断出这需要到全文库中进行查询,然后生成全文库(假设为ElasticSearch) 的查询转换器,最后通过查询转换器把查询结构转换为 ElasticSearch支持的DSL查询语句:
。
Claims (10)
1.一种支持异构数据库的数据检索方法,包括下列步骤:
(1)检索系统包含检索语句解析模块和检索条件转换模块,用户输入需要检索的简单语句或者复杂语句,检索语句解析模块对检索语句进行解析,并且把解析的结果转换成统一查询结构;
(2)检索条件转换模块对查询结构进行解析,然后根据数据库的具体类型,从查询转换器中选择合适的适配器转换为数据库支持的查询表达式语句。
2.根据权利要求1所述的支持异构数据库的数据检索方法,其特征在于:所述简单语句就是一个只包含检索条件的语句;复合语句是通过管道符号或者连接符号连接起来的多个语句,复合语句的第一个语句为检索条件。
3.根据权利要求2所述的支持异构数据库的数据检索方法,其特征在于:对于简单语句,本发明支持关键词、短语和通配符的检索,支持字段值匹配的检索,支持布尔表达式的检索,支持正则表达式的检索。
4.根据权利要求2所述的支持异构数据库的数据检索方法,其特征在于:所述复合语句的命令包括以下类型:生成命令、数据源命令、字段值运算、字段值过滤、字段选择、分组命令、统计命令、排序命令、连接命令和子检索,这些命令在一定约束条件下能够组合使用。
5.根据权利要求1所述的支持异构数据库的数据检索方法,其特征在于:检索语句解析模块包含表达式解析模块和查询解析模块两个子模块,表达式解析模块首先通过词法分析器对检索语句进行词法分析,然后通过检索解析器对检索命令进行解析,提取出所有的命令及相应的参数信息,最后生出SDL的检索表达式;查询解析模块把SDL检索表达式转换一个通用的查询结构。
6.根据权利要求5所述的支持异构数据库的数据检索方法,其特征在于:表达式解析模块中,表达式解析器接收到待解析的检索语句,通过词法解析器对检索语句进行词法分析,然后提取每个检索子句传递给检索解析器进行命令解析及命令参数的提取,最后把命令解析结果进行汇总分析,生成SDL检索表达式。
7.根据权利要求6所述的支持异构数据库的数据检索方法,其特征在于:词法解析器对检索语句进行词法分析,把检索语句从一个字符序列转换为单词序列,词法解析器设置的词法分析器用于扫描、识别单词,并且对识别出的单词进行分类标记,单词分类包括:标识符、字符串、数字、变量、字符、操作符;
命令解析器对检索语句进行语法分析,从词法分析器输出的单词序列中取出单词进行分析,首先判断取得的单词是否是搜索命令,如果是搜索命令,则对命令进行解析并且对命令的参数进行表达式解析,生成检索表达式;
检索表达式用来保存命令及参数的解析结果,解析结果主要包括:检索源、检索结果项、检索条件、检索分组条件、检索排序条件、检索结果记录数条件。
8.根据权利要求5所述的支持异构数据库的数据检索方法,其特征在于:查询解析器对表达式解析器生成的检索表达式进行解析,生成统一的查询结构,包括下列步骤:
1)对检索结果字段进行解析,生成Field结构;
2)对检索源进行解析,生成From结构;
3)对检索条件进行解析,生成Where结构;
4)对子检索进行解析,生成SubQuery结构;
5)对检索结果记录数进行解析,取得返回结果的最大条数;
6)对检索结果的排序条件进行解析,生成Order结构;
7)对检索分组条件进行解析,生成Group结构。
9.根据权利要求1所述的支持异构数据库的数据检索方法,其特征在于:所述查询结构用来保存查询解析器对于检索表达式的解析结果,包括以下类型的结构:字段结构、条件结构、分组结构、排序结构、数据源结构、子查询结构。
10.根据权利要求1所述的支持异构数据库的数据检索方法,其特征在于:检索语句解析模块还包括条件解析器,用来对查询条件进行解析,生成条件结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710878815.3A CN108446289A (zh) | 2017-09-26 | 2017-09-26 | 一种支持异构数据库的数据检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710878815.3A CN108446289A (zh) | 2017-09-26 | 2017-09-26 | 一种支持异构数据库的数据检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108446289A true CN108446289A (zh) | 2018-08-24 |
Family
ID=63190938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710878815.3A Pending CN108446289A (zh) | 2017-09-26 | 2017-09-26 | 一种支持异构数据库的数据检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446289A (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241080A (zh) * | 2018-09-29 | 2019-01-18 | 焦点科技股份有限公司 | 一种fql查询语言的构建使用方法及其系统 |
CN109308300A (zh) * | 2018-09-27 | 2019-02-05 | 上海达梦数据库有限公司 | 一种逻辑运算的处理方法、装置、转换插件及存储介质 |
CN109376220A (zh) * | 2018-12-12 | 2019-02-22 | 北京字节跳动网络技术有限公司 | 用于获取信息的方法和装置 |
CN109542931A (zh) * | 2018-11-23 | 2019-03-29 | 四川长虹电器股份有限公司 | 一种基于正则表达式提高sql数据库精确查询效率的方法 |
CN109656951A (zh) * | 2018-12-18 | 2019-04-19 | 北京华电天仁电力控制技术有限公司 | 基于表达式查询数据的方法及查询系统 |
CN109753658A (zh) * | 2018-12-29 | 2019-05-14 | 百度在线网络技术(北京)有限公司 | 交互方法和装置 |
CN109918426A (zh) * | 2018-12-21 | 2019-06-21 | 航天信息股份有限公司 | 食药监数据管理平台的搭建方法 |
CN110175031A (zh) * | 2019-04-25 | 2019-08-27 | 平安科技(深圳)有限公司 | Sql语言转成dsl语言的方法、装置、计算机设备和存储介质 |
CN110188113A (zh) * | 2019-05-09 | 2019-08-30 | 厦门市美亚柏科信息股份有限公司 | 一种利用复杂表达式进行数据比对的方法、装置及存储介质 |
CN110472127A (zh) * | 2019-07-17 | 2019-11-19 | 微梦创科网络科技(中国)有限公司 | 一种数据查询方法及系统 |
CN110674163A (zh) * | 2019-08-26 | 2020-01-10 | 天津浪淘科技股份有限公司 | 一种基于bs构架的异构数据查询系统及其方法 |
CN110688544A (zh) * | 2019-10-17 | 2020-01-14 | 北京锐安科技有限公司 | 一种查询数据库的方法、设备及存储介质 |
CN110727651A (zh) * | 2019-09-05 | 2020-01-24 | 深圳平安通信科技有限公司 | 一种日志处理方法、装置、终端设备及计算机可读存储介质 |
CN111061766A (zh) * | 2019-11-27 | 2020-04-24 | 上海钧正网络科技有限公司 | 一种业务数据的处理方法、装置、计算机设备及存储介质 |
CN111125218A (zh) * | 2019-12-13 | 2020-05-08 | 成都安恒信息技术有限公司 | 一种基于协议解析的数据库兼容方法及其兼容性代理装置 |
CN111737284A (zh) * | 2020-08-18 | 2020-10-02 | 北京升鑫网络科技有限公司 | 一种基于管道的数据库查询分析方法、装置及计算设备 |
CN111753028A (zh) * | 2020-07-02 | 2020-10-09 | 上海达梦数据库有限公司 | 数据传输方法、装置、设备及存储介质 |
CN111753548A (zh) * | 2020-03-04 | 2020-10-09 | 北京沃东天骏信息技术有限公司 | 信息获取方法及装置、计算机存储介质、电子设备 |
CN112035508A (zh) * | 2020-08-27 | 2020-12-04 | 深圳天源迪科信息技术股份有限公司 | 基于sql在线元数据解析的方法及系统、设备 |
CN112214494A (zh) * | 2020-10-21 | 2021-01-12 | 中国银行股份有限公司 | 检索方法及装置 |
CN112632107A (zh) * | 2020-12-31 | 2021-04-09 | 恒安嘉新(北京)科技股份公司 | 一种检索方法、装置、存储介质及电子设备 |
CN112699141A (zh) * | 2020-12-29 | 2021-04-23 | 医渡云(北京)技术有限公司 | 多源异构数据的数据查询方法、装置、存储介质及设备 |
CN112765201A (zh) * | 2021-02-01 | 2021-05-07 | 武汉思普崚技术有限公司 | 一种sql语句解析为特定领域查询语句的方法及装置 |
CN112818051A (zh) * | 2021-02-02 | 2021-05-18 | 上海达梦数据库有限公司 | 一种异构库通信方法、终端设备及存储介质 |
CN113297251A (zh) * | 2021-05-31 | 2021-08-24 | 深信服科技股份有限公司 | 多源数据检索方法、装置、设备及存储介质 |
CN113779071A (zh) * | 2021-09-24 | 2021-12-10 | 北京锐安科技有限公司 | 一种数据库的查询方法、装置、设备及存储介质 |
US11256709B2 (en) | 2019-08-15 | 2022-02-22 | Clinicomp International, Inc. | Method and system for adapting programs for interoperability and adapters therefor |
CN114090589A (zh) * | 2022-01-20 | 2022-02-25 | 苏州浪潮智能科技有限公司 | 基于HBase的数据查询方法、装置和计算机设备 |
CN114547080A (zh) * | 2022-02-24 | 2022-05-27 | 重庆紫光华山智安科技有限公司 | 数据查询方法、系统、电子设备和存储介质 |
CN114969450A (zh) * | 2022-04-19 | 2022-08-30 | 北京优特捷信息技术有限公司 | 一种用户行为分析方法、装置、设备及存储介质 |
WO2023115252A1 (en) * | 2021-12-20 | 2023-06-29 | Boe Technology Group Co., Ltd. | Data query method, data query apparatus, and computer-program product |
CN117331963A (zh) * | 2023-11-28 | 2024-01-02 | 恒生电子股份有限公司 | 数据访问处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174271A (zh) * | 2007-11-28 | 2008-05-07 | 金蝶软件(中国)有限公司 | 数据库系统管理方法 |
US20080319958A1 (en) * | 2007-06-22 | 2008-12-25 | Sutirtha Bhattacharya | Dynamic Metadata based Query Formulation for Multiple Heterogeneous Database Systems |
CN101604237A (zh) * | 2008-06-10 | 2009-12-16 | 中兴通讯股份有限公司 | 一种访问通用数据库的系统 |
CN102253984A (zh) * | 2011-06-28 | 2011-11-23 | 用友软件股份有限公司 | 查询语句处理装置和查询语句处理方法 |
CN103646032A (zh) * | 2013-11-11 | 2014-03-19 | 漆桂林 | 一种基于本体和受限自然语言处理的数据库查询方法 |
CN105260403A (zh) * | 2015-09-22 | 2016-01-20 | 广东同望科技股份有限公司 | 通用跨数据库访问方法 |
-
2017
- 2017-09-26 CN CN201710878815.3A patent/CN108446289A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080319958A1 (en) * | 2007-06-22 | 2008-12-25 | Sutirtha Bhattacharya | Dynamic Metadata based Query Formulation for Multiple Heterogeneous Database Systems |
CN101174271A (zh) * | 2007-11-28 | 2008-05-07 | 金蝶软件(中国)有限公司 | 数据库系统管理方法 |
CN101604237A (zh) * | 2008-06-10 | 2009-12-16 | 中兴通讯股份有限公司 | 一种访问通用数据库的系统 |
CN102253984A (zh) * | 2011-06-28 | 2011-11-23 | 用友软件股份有限公司 | 查询语句处理装置和查询语句处理方法 |
CN103646032A (zh) * | 2013-11-11 | 2014-03-19 | 漆桂林 | 一种基于本体和受限自然语言处理的数据库查询方法 |
CN105260403A (zh) * | 2015-09-22 | 2016-01-20 | 广东同望科技股份有限公司 | 通用跨数据库访问方法 |
Non-Patent Citations (2)
Title |
---|
刘丽: "《ACCESS 2010数据库基础教程》", 31 July 2016, 北京理工大学出版社 * |
李劲: "《精通C++ Builder 4.0与SQL Server 7.0》", 31 March 2000, 华中理工大学出版社 * |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308300A (zh) * | 2018-09-27 | 2019-02-05 | 上海达梦数据库有限公司 | 一种逻辑运算的处理方法、装置、转换插件及存储介质 |
CN109241080A (zh) * | 2018-09-29 | 2019-01-18 | 焦点科技股份有限公司 | 一种fql查询语言的构建使用方法及其系统 |
CN109542931A (zh) * | 2018-11-23 | 2019-03-29 | 四川长虹电器股份有限公司 | 一种基于正则表达式提高sql数据库精确查询效率的方法 |
CN109376220A (zh) * | 2018-12-12 | 2019-02-22 | 北京字节跳动网络技术有限公司 | 用于获取信息的方法和装置 |
CN109656951A (zh) * | 2018-12-18 | 2019-04-19 | 北京华电天仁电力控制技术有限公司 | 基于表达式查询数据的方法及查询系统 |
CN109918426A (zh) * | 2018-12-21 | 2019-06-21 | 航天信息股份有限公司 | 食药监数据管理平台的搭建方法 |
CN109753658A (zh) * | 2018-12-29 | 2019-05-14 | 百度在线网络技术(北京)有限公司 | 交互方法和装置 |
CN109753658B (zh) * | 2018-12-29 | 2023-09-19 | 百度在线网络技术(北京)有限公司 | 交互方法和装置 |
WO2020215576A1 (zh) * | 2019-04-25 | 2020-10-29 | 平安科技(深圳)有限公司 | Sql语言转成dsl语言的方法、装置、计算机设备和存储介质 |
CN110175031B (zh) * | 2019-04-25 | 2023-08-18 | 平安科技(深圳)有限公司 | Sql语言转成dsl语言的方法、装置、计算机设备和存储介质 |
CN110175031A (zh) * | 2019-04-25 | 2019-08-27 | 平安科技(深圳)有限公司 | Sql语言转成dsl语言的方法、装置、计算机设备和存储介质 |
CN110188113A (zh) * | 2019-05-09 | 2019-08-30 | 厦门市美亚柏科信息股份有限公司 | 一种利用复杂表达式进行数据比对的方法、装置及存储介质 |
CN110188113B (zh) * | 2019-05-09 | 2022-05-13 | 厦门市美亚柏科信息股份有限公司 | 一种利用复杂表达式进行数据比对的方法、装置及存储介质 |
CN110472127A (zh) * | 2019-07-17 | 2019-11-19 | 微梦创科网络科技(中国)有限公司 | 一种数据查询方法及系统 |
US11714822B2 (en) | 2019-08-15 | 2023-08-01 | Clinicomp International, Inc. | Method and system for adapting programs for interoperability and adapters therefor |
US11256709B2 (en) | 2019-08-15 | 2022-02-22 | Clinicomp International, Inc. | Method and system for adapting programs for interoperability and adapters therefor |
CN110674163A (zh) * | 2019-08-26 | 2020-01-10 | 天津浪淘科技股份有限公司 | 一种基于bs构架的异构数据查询系统及其方法 |
CN110727651A (zh) * | 2019-09-05 | 2020-01-24 | 深圳平安通信科技有限公司 | 一种日志处理方法、装置、终端设备及计算机可读存储介质 |
CN110688544A (zh) * | 2019-10-17 | 2020-01-14 | 北京锐安科技有限公司 | 一种查询数据库的方法、设备及存储介质 |
CN111061766A (zh) * | 2019-11-27 | 2020-04-24 | 上海钧正网络科技有限公司 | 一种业务数据的处理方法、装置、计算机设备及存储介质 |
CN111125218A (zh) * | 2019-12-13 | 2020-05-08 | 成都安恒信息技术有限公司 | 一种基于协议解析的数据库兼容方法及其兼容性代理装置 |
CN111753548A (zh) * | 2020-03-04 | 2020-10-09 | 北京沃东天骏信息技术有限公司 | 信息获取方法及装置、计算机存储介质、电子设备 |
CN111753028B (zh) * | 2020-07-02 | 2023-08-25 | 上海达梦数据库有限公司 | 数据传输方法、装置、设备及存储介质 |
CN111753028A (zh) * | 2020-07-02 | 2020-10-09 | 上海达梦数据库有限公司 | 数据传输方法、装置、设备及存储介质 |
CN111737284A (zh) * | 2020-08-18 | 2020-10-02 | 北京升鑫网络科技有限公司 | 一种基于管道的数据库查询分析方法、装置及计算设备 |
CN112035508A (zh) * | 2020-08-27 | 2020-12-04 | 深圳天源迪科信息技术股份有限公司 | 基于sql在线元数据解析的方法及系统、设备 |
CN112214494A (zh) * | 2020-10-21 | 2021-01-12 | 中国银行股份有限公司 | 检索方法及装置 |
CN112214494B (zh) * | 2020-10-21 | 2023-10-24 | 中国银行股份有限公司 | 检索方法及装置 |
CN112699141A (zh) * | 2020-12-29 | 2021-04-23 | 医渡云(北京)技术有限公司 | 多源异构数据的数据查询方法、装置、存储介质及设备 |
CN112632107A (zh) * | 2020-12-31 | 2021-04-09 | 恒安嘉新(北京)科技股份公司 | 一种检索方法、装置、存储介质及电子设备 |
CN112765201A (zh) * | 2021-02-01 | 2021-05-07 | 武汉思普崚技术有限公司 | 一种sql语句解析为特定领域查询语句的方法及装置 |
CN112818051A (zh) * | 2021-02-02 | 2021-05-18 | 上海达梦数据库有限公司 | 一种异构库通信方法、终端设备及存储介质 |
CN113297251A (zh) * | 2021-05-31 | 2021-08-24 | 深信服科技股份有限公司 | 多源数据检索方法、装置、设备及存储介质 |
CN113779071A (zh) * | 2021-09-24 | 2021-12-10 | 北京锐安科技有限公司 | 一种数据库的查询方法、装置、设备及存储介质 |
WO2023115252A1 (en) * | 2021-12-20 | 2023-06-29 | Boe Technology Group Co., Ltd. | Data query method, data query apparatus, and computer-program product |
CN114090589A (zh) * | 2022-01-20 | 2022-02-25 | 苏州浪潮智能科技有限公司 | 基于HBase的数据查询方法、装置和计算机设备 |
CN114547080A (zh) * | 2022-02-24 | 2022-05-27 | 重庆紫光华山智安科技有限公司 | 数据查询方法、系统、电子设备和存储介质 |
CN114969450A (zh) * | 2022-04-19 | 2022-08-30 | 北京优特捷信息技术有限公司 | 一种用户行为分析方法、装置、设备及存储介质 |
CN117331963A (zh) * | 2023-11-28 | 2024-01-02 | 恒生电子股份有限公司 | 数据访问处理方法、装置、电子设备及存储介质 |
CN117331963B (zh) * | 2023-11-28 | 2024-03-08 | 恒生电子股份有限公司 | 数据访问处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446289A (zh) | 一种支持异构数据库的数据检索方法 | |
CN109492077B (zh) | 基于知识图谱的石化领域问答方法及系统 | |
CN105701253B (zh) | 中文自然语言问句语义化的知识库自动问答方法 | |
US8005815B2 (en) | Search engine | |
JP3842577B2 (ja) | 構造化文書検索方法および構造化文書検索装置およびプログラム | |
CN102722542B (zh) | 一种资源描述框架图模式匹配方法 | |
CN109241080B (zh) | 一种fql查询语言的构建使用方法及其系统 | |
CN110909016B (zh) | 基于数据库的重复关联检测方法、装置、设备及存储介质 | |
US20130311166A1 (en) | Domain-Specific Natural-Language Processing Engine | |
CN102609451A (zh) | 面向流式数据处理的sql查询计划生成方法 | |
JP2001167087A (ja) | 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法 | |
CN113032418B (zh) | 一种基于树状模型的复杂自然语言查询转sql方法 | |
CN101201838A (zh) | 利用词组索引技术对基于关键词索引的搜索引擎进行改进的方法 | |
CN109522225A (zh) | 一种自动化测试断言方法及装置、测试平台及存储介质 | |
CN110175585A (zh) | 一种简答题自动批改系统及方法 | |
CN101661469A (zh) | 学术文献关键词标引和检索系统及方法 | |
CN107818181A (zh) | 基于Plcient交互式引擎的索引方法及其系统 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN109145009A (zh) | 一种基于SQL检索ElasticSearch的方法 | |
Almeida et al. | BIT. UA at BioASQ 8: Lightweight Neural Document Ranking with Zero-shot Snippet Retrieval. | |
CN109446277A (zh) | 基于中文自然语言的关系型数据智能搜索方法及系统 | |
JP4103905B2 (ja) | 統合化検索システム | |
CN106933844A (zh) | 面向大规模rdf数据的可达性查询索引的构建方法 | |
CN102521239B (zh) | 一种基于owl的互联网问答信息匹配系统及其匹配方法 | |
JP3747542B2 (ja) | 統合化検索装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180824 |
|
RJ01 | Rejection of invention patent application after publication |