一种全文检索的方法和分布式NewSQL数据库系统技术方案

技术编号:16662924 阅读:28 留言:0更新日期:2017-11-30 11:59
本发明专利技术公开了一种全文检索的方法,适用于分布式NewSQL数据库系统,所述分布式NewSQL数据库系统包括Solr单元,所述全文检索的方法包括:以JDCB/ODBC的接口方式接入用户请求,其中,用户请求包括全文检索的查询条件;解析用户请求,编译以及生成对应的执行计划;根据执行计划,将查询条件从SQL条件语句转换成SOLR的查询表达式,然后根据SOLR的查询表达式查询索引表,获取对应的索引数据;并,根据获取的索引数据查询数据表,从而获得对应的查询结果;其中,数据表中存有全文检索的数据字段,索引表中存有根据全文检索的数据字段的描述所生成的倒排索引形式的索引数据。本发明专利技术还提供一种分布式NewSQL数据库系统。本发明专利技术支持分布式全文检索,满足用户创建全文索引的需求。

【技术实现步骤摘要】
一种全文检索的方法和分布式NewSQL数据库系统
本专利技术涉及大数据
,尤其涉及一种全文检索的方法和分布式NewSQL数据库系统。
技术介绍
目前Hbase单元是Hadoop生态体系中最著名的分布式NoSQL数据库之一。其设计理念来源于Google的Bigtable。Hbase单元主要组件包括HMaster和HRegionsever,为用户提供表格类型的数据模型,按主键范围划分为多个region,HMaster负责管理和分配region,HRegionserver负责region数据的读写。Hbase单元的优点使其成为目前应用最广泛的分布式NoSQL数据库之一,随着越来越多的应用尝试迁移到Hbase单元上,但Hbase单元只支持基于主键的查询,并不支持全文检索,给很多应用带来了不便。
技术实现思路
本专利技术实施例的目的是提供一种全文检索的方法和分布式NewSQL数据库系统,通过Solr支持分布式全文检索,支持非主键的查询,满足用户全文检索的需求。为实现上述目的,本专利技术实施例提供了一种全文检索的方法,适用于分布式NewSQL数据库系统,所述分布式NewSQL数据库系统包括Solr单元,所述全文检索的方法包括:以JDCB/ODBC的接口方式接入用户请求,其中,所述用户请求包括全文检索的查询条件;所述查询结果为根据所述查询条件所获得的查询结果;解析所述用户请求,编译以及生成对应的执行计划;根据执行计划,将所述查询条件从SQL条件语句转换成SOLR的查询表达式,然后根据所述SOLR的查询表达式查询Solr单元的索引表,获取对应的索引数据;并,根据获取的所述索引数据查询数据表,从而获得对应的所述查询结果;其中,所述数据表中存有全文检索的数据字段,所述索引表中存有根据所述全文检索的数据字段的描述所生成的倒排索引形式的索引数据;返回所述查询结果给用户。进一步的,还包括:将所述用户请求转化SQL语句形式的SQL请求。进一步的,所述解析所述用户请求,编译以及生成对应的执行计划包括:判断共享缓存池中是否存在与所述SQL请求相对应的预存SQL语句,若是,则输出相对应的所述预存SQL语句对应的执行计划,若否,则,对所述SQL请求进行语法检查,若语法错误返回错误信息给用户,否则,对所述SQL请求进行语义检查,若语义错误返回错误信息给用户,否则,对所述SQL请求进行视图以及表达式转换,获得对应的转化结果;根据所述转换结果选择优化器,获得对应的优化器选择结果;根据所述优化器选择结果选择对应的数据连接方式以及连接顺序;根据连接方式和连接顺序选择搜索的路径;根据搜索路径生成执行计划,并输出执行计划。相应,本专利技术还提供一种分布式NewSQL数据库系统,包括:JDCB/ODBC接口单元,用于与用户进行交互操作,包括接收用户请求,返回查询结果给用户;其中,所述用户请求包括全文检索的查询条件,所述查询结果为根据所述查询条件所获得的查询结果;master单元,用于接入JDCB/ODBC接口单元所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给SQLPlaner单元;master单元还用于所述查询结果返回JDCB/ODBC接口单元;SQLPlaner单元,用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;worker单元,用于并行地执行所述计划,包括:将所述查询条件从SQL条件语句转换成SOLR的查询表达式,然后根据所述SOLR的查询表达式查询索引表,获取对应的索引数据;并根据获取的所述索引数据查询数据表,从而获得对应的所述查询结果;并返回查询结果至所述master单元;Hbase单元,用于储存所述数据表;其中,所述数据表中存有全文检索的数据字段;Solr单元,用于储存所述索引表;其中,所述索引表中存有由根据所述全文检索的数据字段的描述所生成的倒排索引形式的索引数据;分布式事务管理器,用于当所述worker单元执行计划涉及事务时,协调多方完成分布式事务管理。进一步的,JDCB/ODBC接口单元还用于将所述用户请求转化SQL语句形式的SQL请求。进一步的,所述SQLPlaner单元用于:判断共享缓存池中是否存在与所述SQL请求相对应的预存SQL语句,若是,则输出相对应的所述预存SQL语句对应的执行计划,若否,则,对所述SQL请求进行语法检查,若语法错误返回错误信息给用户,否则,对所述SQL请求进行语义检查,若语义错误返回错误信息给用户,否则,对所述SQL请求进行视图以及表达式转换,获得对应的转化结果;根据所述转换结果选择优化器,获得对应的优化器选择结果;根据所述优化器选择结果选择对应的数据连接方式以及连接顺序;根据连接方式和连接顺序选择搜索的路径;根据搜索路径生成执行计划,并输出执行计划。进一步的,还包括:监视器,用于负责元数据管理,监控所述Hbase单元的Region的负载,以及通过所述Hbase单元的coprocessor模块重新分配Region;所述监视器与所述master单元连接。进一步的,所述监控所述Hbase单元的Region的负载,以及通过所述Hbase单元的coprocessor模块重新分配Region包括:接收所述Hbase单元的数据分布信息,接收所述master单元中的所述worker单元的负载信息,其中,所述负载信息包括所述worker单元的负载偏差值;将所述worker单元的负载偏差值与预设负载偏差阈值进行比较,若判定所述负载偏差值超过阀值,触发所述Hbase单元将命中率较高服务器上的Region和命中率较低服务器上的Region进行从新分配;获取每一Region的数据量,将每一所述Region的数据量与预设数据量阈值进行判断,若判定所述Region的数据量超过阀值,触发所述Hbase单元将超过预设数据量阈值的所述Region切分成两个。进一步的,所述JDCB/ODBC接口单元包括:JDBC应用程序模块,用于接收用户请求,以及调用JDBC对象方法以给出SQL语句,并用于提取结果返回用户;JDBC驱动程序管理器模块,用于为所述JDBC应用程序模块加载和调用JDBC驱动程序模块;JDBC驱动程序模块,用于执行所述JDBC对象方法的调用,发送用户请求所对应的SQL语句给底层的数据库,并将从所述底层的数据库获得的结果返回给JDBC应用程序模块。与现有技术相比,本专利技术公开的一种全文检索的方法和分布式NewSQL数据库系统,以JDCB/ODBC的接口方式接入用户请求,其中,所述用户请求包括全文检索的查询条件;所述查询结果为根据所述查询条件所获得的查询结果;解析所述用户请求,编译以及生成对应的执行计划;根据执行计划,将所述查询条件从SQL条件语句转换成SOLR的查询表达式,然后根据所述SOLR的查询表达式查询Solr单元的索引表,获取对应的索引数据;并,根据获取的所述索引数据查询数据表,从而获得对应的所述查询结果;其中,所述数据表中存有全文检索的数据字段,所述索引表中存有根据所述全文检索的数据字段的描述所生成的倒排索引形式的索引数据;返回所述查询结果给用户的技术方案,基于Solr单元实现全文检索,以支持分布式全文检索,支持用户非主键查询,满足用户全文检索的需求,提高用户体验。本文档来自技高网...
一种全文检索的方法和分布式NewSQL数据库系统

【技术保护点】
一种全文检索的方法,其特征在于,适用于分布式NewSQL数据库系统,所述分布式NewSQL数据库系统包括Solr单元,所述全文检索的方法包括:以JDCB/ODBC的接口方式接入用户请求,其中,所述用户请求包括全文检索的查询条件;所述查询结果为根据所述查询条件所获得的查询结果;解析所述用户请求,编译以及生成对应的执行计划;根据执行计划,将所述查询条件从SQL条件语句转换成SOLR的查询表达式,并根据所述SOLR的查询表达式查询Solr单元的索引表,获取对应的索引数据;根据获取的所述索引数据查询数据表,从而获得对应的所述查询结果;其中,所述数据表中存有全文检索的数据字段,所述索引表中存有根据所述全文检索的数据字段的描述所生成的倒排索引形式的索引数据;返回所述查询结果给用户。

【技术特征摘要】
2016.09.21 CN 20161084239971.一种全文检索的方法,其特征在于,适用于分布式NewSQL数据库系统,所述分布式NewSQL数据库系统包括Solr单元,所述全文检索的方法包括:以JDCB/ODBC的接口方式接入用户请求,其中,所述用户请求包括全文检索的查询条件;所述查询结果为根据所述查询条件所获得的查询结果;解析所述用户请求,编译以及生成对应的执行计划;根据执行计划,将所述查询条件从SQL条件语句转换成SOLR的查询表达式,并根据所述SOLR的查询表达式查询Solr单元的索引表,获取对应的索引数据;根据获取的所述索引数据查询数据表,从而获得对应的所述查询结果;其中,所述数据表中存有全文检索的数据字段,所述索引表中存有根据所述全文检索的数据字段的描述所生成的倒排索引形式的索引数据;返回所述查询结果给用户。2.如权利要求1所述的一种全文检索的方法,其特征在于,还包括:将所述用户请求转化SQL语句形式的SQL请求。3.如权利要求2所述的一种全文检索的方法,其特征在于,所述解析所述用户请求,编译以及生成对应的执行计划包括:判断共享缓存池中是否存在与所述SQL请求相对应的预存SQL语句,若是,则输出相对应的所述预存SQL语句对应的执行计划,若否,则,对所述SQL请求进行语法检查,若语法错误返回错误信息给用户,否则,对所述SQL请求进行语义检查,若语义错误返回错误信息给用户,否则,对所述SQL请求进行视图以及表达式转换,获得对应的转化结果;根据所述转换结果选择优化器,获得对应的优化器选择结果;根据所述优化器选择结果选择对应的数据连接方式以及连接顺序;根据连接方式和连接顺序选择搜索的路径;根据搜索路径生成执行计划,并输出执行计划。4.一种分布式NewSQL数据库系统,其特征在于,包括:JDCB/ODBC接口单元,用于与用户进行交互操作,包括接收用户请求,返回查询结果给用户;其中,所述用户请求包括全文检索的查询条件,所述查询结果为根据所述查询条件所获得的查询结果;master单元,用于接入JDCB/ODBC接口单元所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给SQLPlaner单元;master单元还用于所述查询结果返回JDCB/ODBC接口单元;SQLPlaner单元,用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;worker单元,用于并行地执行所述计划,包括:将所述查询条件从SQL条件语句转换成SOLR的查询表达式,然后根据所述SOLR的查询表达式查询索引表,获取对应的索引数据;并根据获取的所述索引数据查询数据表,从而获得对应的所述查询结果;并返回查询结果至所述master单元;Hbase单元,用于储存所述数据表;其中,所述数据表中存有全文检索的数据字段;Solr单...

【专利技术属性】
技术研发人员:晋彤
申请(专利权)人:广州特道信息科技有限公司
类型:发明
国别省市:广东,44

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

1