CN109885583A - 基于区块链的数据查询方法、装置、设备及存储介质 - Google Patents
基于区块链的数据查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109885583A CN109885583A CN201910050975.8A CN201910050975A CN109885583A CN 109885583 A CN109885583 A CN 109885583A CN 201910050975 A CN201910050975 A CN 201910050975A CN 109885583 A CN109885583 A CN 109885583A
- Authority
- CN
- China
- Prior art keywords
- block chain
- data
- block
- checked
- screening conditions
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000012216 screening Methods 0.000 claims abstract description 113
- 238000000605 extraction Methods 0.000 claims description 16
- 238000005516 engineering process Methods 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于区块链技术领域,公开了一种基于区块链的数据查询方法、装置、设备及存储介质。该方法包括:接收用户触发的区块链数据查询请求,获取区块链数据查询请求对应的待查询问题;对待查询问题进行分析,确定区块筛选条件和目标数据筛选条件;根据区块筛选条件、目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符,生成区块链数据查询表达式;利用预设的区块链数据查询引擎,从区块链上查询符合区块链数据查询表达式指定的数据。通过上述方式,不仅提升了从区块链中查询数据的效率,同时也降低了对用户的要求。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的数据查询方法、装置、设备及存储介质。
背景技术
随着计算机技术的不断发展,区块链技术(又称之为分布式账本技术)作为一种新的分布式数据存储技术,由于其具备不可篡改的特性,使得存储至区块链中的数据具备公正、公信力等特点,进而使得基于区块链的存储方式被广泛使用。
然而,当前市场上对于存储于区块链中的数据的查询,大多集中在查询单个区块上,即用户想要查询自己需要的数据,在发起一次查询请求之后,只能在一个指定的区块中进行查询,如果需要对整个区块链上的区块进行查询,就需要发起多次查询请求,严重影响了数据的查询效率。此外,由于目前从区块链中查询数据的查询请求需要用户按照特定语言,编写针对不同区块的查询语句才可以实现对区块中数据的查询,这就导致不熟悉相关知识的用户根本无法从区块链中精准的查找到自己需要的数据。
所以,亟需提供一种能够快速、准确,且方便用户从区块链中查询数据的方法。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于区块链的数据查询方法、装置、设备及存储介质,旨在解决现有技术中从区块链中查询数据的效率低,且对查询者要求高的技术问题。
为实现上述目的,本发明提供了一种基于区块链的数据查询方法,所述方法包括以下步骤:
接收用户触发的区块链数据查询请求,获取所述区块链数据查询请求对应的待查询问题;
对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件;
根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符,生成区块链数据查询表达式;
利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据。
优选地,所述对所述待查询问题进行分析之前,所述方法还包括:
基于关键词提取技术,从所述待查询问题中提取至少一个关键词;
其中,所述对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件,包括:
对提取到的各关键词进行语义分析;
根据各关键词的语义,确定所述区块筛选条件和所述目标数据筛选条件。
优选地,所述基于关键词提取技术,从所述待查询问题中提取至少一个关键词之前,所述方法还包括:
确定所述待查询问题的格式;
若所述待查询问题为语音格式,则基于语音识别技术,将语音格式的待查询问题转换为文本格式的待查询问题;
若所述待查询问题为图片格式,则基于图像识别文字技术,将图片格式的待查询问题转换为文本格式的待查询问题;
其中,所述基于关键词提取技术,从所述待查询问题中提取至少一个关键词,包括:
基于关键词提取技术,从文本格式的待查询问题中提取至少一个关键词。
优选地,所述查询表达式模板中的查询表达式的语法结构为:
select{*|field[,…]}from blockchain[where search_condition];
其中,blockchain为要查询的区块链的名称,search_condition为所述区块筛选条件,field为所述目标数据筛选条件。
优选地,所述利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据之前,所述方法还包括:
确定所述区块链的编程语言;
将所述区块链数据查询表达式转换为所述区块链能够识别的编程语言。
优选地,所述利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据,包括:
以所述区块筛选条件为第一查询目标,利用所述区块链数据查询引擎,采用所述区块链能够识别的编程语言,从所述区块链中查询出符合所述区块筛选条件的区块;
以所述目标数据筛选条件为第二查询目标,利用所述区块链数据查询引擎,采用所述区块链能够识别的编程语言,对筛选出的各区块进行遍历,查询出符合所述目标数据筛选条件的数据。
优选地,所述区块链数据查询引擎中设置有数据缓存区域;
所述查询出符合所述目标数据筛选条件的数据之后,所述方法还包括:
将查询出的所述数据存储到所述数据缓存区域。
此外,为实现上述目的,本发明还提出一种基于区块链的数据查询装置,所述装置包括:
获取模块,用于接收用户触发的区块链数据查询请求,获取所述区块链数据查询请求对应的待查询问题;
确定模块,用于对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件;
生成模块,用于根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符,生成区块链数据查询表达式;
查询模块,用于利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据。
此外,为实现上述目的,本发明还提出一种基于区块链的数据查询设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块链的数据查询程序,所述基于区块链的数据查询程序配置为实现如上文所述的基于区块链的数据查询方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于区块链的数据查询程序,所述基于区块链的数据查询程序被处理器执行时实现如上文所述的基于区块链的数据查询方法的步骤。
本发明通过对用户提供的待查询问题进行分析,进而确定与所述待查询问题相关的区块筛选条件和目标数据筛选条件,使得用户在对存储于区块链中的数据进行查询时,只需提供待查询问题,无需根据按照特定语言手动编写查询语句,大大降低了对用户的要求,方便了用户的使用。此外,本发明在采用根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符生成的区块链数据查询表达式来进行数据查询操作的过程中,由于区块链数据查询表达式中同时设定了区块筛选条件和目标数据筛选条件,因而只需通过一次请求,便可以实现对整个区块链上符合区块筛选条件的区块的查询和符合目标数据筛选条件的数据查询,从而大大提高了数据的查询效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于区块链的数据查询设备的结构示意图;
图2为本发明基于区块链的数据查询方法第一实施例的流程示意图;
图3为本发明基于区块链的数据查询方法第二实施例的流程示意图;
图4为本发明基于区块链的数据查询装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于区块链的数据查询设备结构示意图。
如图1所示,该基于区块链的数据查询设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对基于区块链的数据查询设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及基于区块链的数据查询程序。
在图1所示的基于区块链的数据查询设备中,网络接口1004主要用于与部署有区块链的网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明基于区块链的数据查询设备中的处理器1001、存储器1005可以设置在基于区块链的数据查询设备中,所述基于区块链的数据查询设备通过处理器1001调用存储器1005中存储的基于区块链的数据查询程序,并执行本发明实施例提供的基于区块链的数据查询方法。
本发明实施例提供了一种基于区块链的数据查询方法,参照图2,图2为本发明一种基于区块链的数据查询方法第一实施例的流程示意图。
本实施例中,所述基于区块链的数据查询方法包括以下步骤:
步骤S10,接收用户触发的区块链数据查询请求,获取所述区块链数据查询请求对应的待查询问题。
具体的说,本实施例的执行主体可以是用于管理区块链的服务器。
应当理解的是,在实际应用中,该服务器可以是传统的物理服务器(需要占用实际物理空间),也可以是虚拟云服务器,此处不做限制。
此外,在本实施例中,获取到的待查询问题并非区块链、数据库等能够识别的查询语句,而是用户使用自然语言提供的内容,因而本实施例中提供的基于区块链的数据查询方式,可以大大方便不熟悉区块链知识的用户对存储于区块链中的数据进行查询,进而降低了查询难度,提升了用户的参与度。
需要说明的是,由于本实施例对用户提供的待查询问题的格式不做要求,因而在实际应用中,用户提供的待查询问题可以是各种格式的,比如文本格式、语音格式、图片格式等,此处不再一一列举,对此也不做任何限制。
步骤S20,对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件。
具体的说,在实际应用中,为了能够快速的对用户提供的待查询文件头进行分析,并根据所述待查询问题准确的确定所述区块筛选条件和所述目标数据筛选条件。在对所述待查询问题进行分析之前,可以先基于关键词提取技术,从所述待查询问题中提取至少一个关键词,然后再对提取到的各关键词进行语义分析,根据各关键词的语义来确定所述区块筛选条件和所述目标数据筛选条件。
比如说,在区块链中存储数据的方式是按照每一年一个区块,然后每一个区块中又根据月份、日期细化,则在用户输入的待查询问题是“查询2015年至2018年中,1月、5月和8月产品A的销售数据”时,基于关键词提取技术,从所述待查询问题中提取到的关键词有:2015年至2018年、1月、5月、8月、产品A、销售数据。
进一步地,为了保证后续确定的区块筛选条件和目标数据筛选条件的准确性,还可以先对提取到的关键词进行关键词转换、拓展等操作,比如对关键词“2015年至2018年”进行处理后,可以得到:2015年、2016年、2017年、2018年这4个关键词。
接着,通过对上述得到的关键词进行语义分析,最终确定的区块筛选条件为:“筛选出存储2015年、2016年、2017年、2018年销售数据的存储区块中1月、5月和8月的子区块”;目标数据筛选条件为“产品A的销售数据”。
需要说明的是,以上仅为举例说明,对本案的技术方案并构成任何限定,在具体实现中,本领域的技术人员可以根据需要设置,此处不做限制。
此外,值得一提的是,由于本实施例中对用户提供的待查询问题的格式不做限制,因而为了保证能够从所述待查询问题中提取出合适的关键词,在基于关键词提取技术,进行关键词提取操作之前,还可以先确定所述待查询问题的格式。
进一步地,若确定所述待查询问题为语音格式,则基于语音识别技术,将语音格式的待查询问题转换为文本格式的待查询问题;若确定所述待查询问题为图片格式,则基于图像识别文字技术,比如光学字符识别技术(Optical Character Recognition,ORC),将图片格式的待查询问题转换为文本格式的待查询问题。
相应地,在进行关键词提取操作的时候,具体是基于关键词提取技术,从文本格式的待查询问题中提取至少一个关键词。
此外,为了保证提取出的关键词具有较高的参考价值,可以在从待查询问题中提关键词之前,先对文本格式的待查询问题进行文本预处理操作。
比如说,去停用词,即去掉反馈信息中含有的如:呢、吗、啊等没有实际意义的词。
还比如说,去掉无效特殊字符,如表情符号、各种标点符号等。
还比如说,将反馈信息中的数字转为汉字或相应的英文,如将阿拉伯数字1、2、3转换为汉字一、二、三,或one、two、three等。
还比如说,在执行完上述几种处理操作后,将文本内容合并成一行。
相应地,在将语音格式的待查询问题转换为文本格式的待查询问题之前,同样可以先对语音格式的待查询问题进行一系列预处理操作,比如滤波、去除干扰声音等操作,以保证转换出的文本信息更加准确。
同理,在将图片格式的待查询问题转换为文本格式的待查询问题之前,同样可以先对图片格式的待查询问题进行一系列预处理操作,比如灰度处理、去噪等操作,以保证转换出的文本信息更加准确。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
步骤S30,根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符,生成区块链数据查询表达式。
具体的说,本实施中所说的预设的查询表达式模板中的查询表达式为技术人员自定义的,其语法结构如下所示:
select{*|field[,…]}from blockchain[where search_condition];
其中,blockchain为要查询的区块链的名称,search_condition为所述区块筛选条件,field为所述目标数据筛选条件。
在实际应用中,该表达式的具体含义为:从某个“blockchain(区块链)”中查询符合“search_conditions(区块筛选条件)”条件的区块,并且仅仅显示“field(目标数据筛选条件)”所在字段的值。
应当理解的是,在具体应用中,“blockchain”所在的位置可以直接更换为要查询的区块链的名称或者地址,“search_conditions”所在的位置可以直接更换为确定的区块筛选条件,“field”所在的位置可以直接更换为确定的目标数据筛选条件。
也可以将“blockchain”、“search_conditions”、“field”这些变量预先定义为全局变量,直接在主函数中为上述各变量赋予相应的变量值,这样便可以无需替换区块链查询表达式中的出现的上述变量。
此外,上述所说的所述查询表达式支持的运算符大致如表1所示:
表1 运算符表
类别 | 运算符 | 说明 |
比较运算符 | =,<,>,<=,>=,<> | 比较两个表达式 |
逻辑运算符 | AND,OR,NOT | 组合两个表达式或取反 |
范围运算符 | BETWEEN,NOT BETWEEN | 搜索值是否在范围内 |
列表运算符 | IN,NOT IN | 查询值是否属于列表值之一 |
需要说明的是,以上举例说明,对本发明的技术方案并不构成任何限定,在具体实现中,本领域的技术人员可以根据需要进行设置,此处不做限制。
步骤S40,利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据。
具体的说,在查询过程中,所述区块链数据查询引擎可以是先以区块筛选条件为第一查询目标,对区块链中的区块进行匹配筛选,查询出符合所述区块筛选条件的所有区块;然后再将所述目标数据筛选条件作为第二查询目标,从符合要求的各个区块中查询出需要的数据。
需要说明的是,以上给出的仅仅为一种利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据的具体操作,对本发明的技术方案并不构成任何限定,在具体实现中,本领域的技术人员可以根据需要进行设置,此处不做限制。
通过上述描述不难发现,本实施例中提供的基于区块链的数据查询方法,通过对用户提供的待查询问题进行分析,进而确定与所述待查询问题相关的区块筛选条件和目标数据筛选条件,使得用户在对存储于区块链中的数据进行查询时,只需提供待查询问题,无需根据按照特定语言手动编写查询语句,大大降低了对用户的要求,方便了用户的使用。
此外,本实施例在采用根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符生成的区块链数据查询表达式来进行数据查询操作的过程中,由于区块链数据查询表达式中同时设定了区块筛选条件和目标数据筛选条件,因而只需通过一次请求,便可以实现对整个区块链上符合区块筛选条件的区块的查询和符合目标数据筛选条件的数据查询,从而大大提高了数据的查询效率。
参考图3,图3为本发明一种基于区块链的数据查询方法第二实施例的流程示意图。
基于上述第一实施例,本实施例基于区块链的数据查询方法在所述步骤S40之前,还包括:
步骤S01,确定所述区块链的编程语言。
应当理解的是,在实际应用中,开发区块链时能够使用的编程语言有多种,并且通常会根据存储的内容来选取开发区块链是所需的编程语言,比如用于存放未来币的区块链通常会采用Java编程语言(一种面向对象的编程语言,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点)开发,用于存放比特币的区块链通常会采用C++编程语言(是C语言(通用计算机编程语言)的继承,具有支持数据封装、数据隐藏、继承、重用、多态等特点)开发,用于存放以太坊提供的数据的区块链通常会采用GO编程语言(一种新的编程语言,具有并行、垃圾收集等特点的快速编译语言)来开发,此处不再一一列举,对此也不做任何限制。
由于这些编程语言各具特色,因而可以采用机器学习算法,通过对现有各种区块链采用的编程语言的特点、工作原理的学习训练,构建一个编程语言分析模型。这样在确定所述区块链的编程语言时,只需截取部分待查询的区块链的代码输入到编程语言分析模型制作,便可以快速确定所述区块链的编程语言。
步骤S02,将所述区块链数据查询表达式转换为所述区块链能够识别的编程语言。
具体的说,在将所述区块链数据查询表达式转换为所述区块链能够识别的编程语言时,具体是根据确定的编程语言,根据所述编程语言的编程特色,将所述区块链数据查询表达式转换为符合所述编程语言特色的撰写格式,但是其查询效果仍为所述区块链数据查询表达式原本的含义。
此外,应当理解的是,在将所述区块链数据查询表达式转换为所述区块链能够识别的编程语言之后,所述利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据的操作相应地变为:先以所述区块筛选条件为第一查询目标,利用所述区块链数据查询引擎,采用所述区块链能够识别的编程语言,从所述区块链中查询出符合所述区块筛选条件的区块;然后,以所述目标数据筛选条件为第二查询目标,利用所述区块链数据查询引擎,采用所述区块链能够识别的编程语言,对筛选出的各区块进行遍历,查询出符合所述目标数据筛选条件的数据。
需要说明的是,以上给出的仅仅为一种利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据的具体操作,对本发明的技术方案并不构成任何限定,在具体实现中,本领域的技术人员可以根据需要进行设置,此处不做限制。
此外,应当理解的是,在实际应用中存储在区块链中的数据通常是以二进制数据格式或者其他机器语言格式进行存储的,因而为了保证查找到的数据用户能够看懂,在查询到符合所述区块链数据查询表达式指定的数据,将查找到的数据展示在用户界面,供用户查看之前,可以先根据预设解析规则对所述数据进行解析操作,以将查询到的数据转换为用户能够看懂的数据格式,比如将二进制数据转换为自然语言格式的数据。
此外,在实际应用中,为了进一步提升查询速度,选用的区块链数据查询引擎可以是内置缓存区域的。
相应地,在查询出符合所述目标数据筛选条件的数据之后,可以将查询出的所述数据存储到所述数据缓存区域,从而在进行下次查询操作的时候,可以先在该数据缓存区域进行一次查找,若所述数据缓存区域中存储有要查询的数据,则直接拿来使用;若所述数据缓存区域中没有要查询的数据,则生成区块链查询表达式,利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据。
此外,应当理解的是,为了保证数据缓存区域空间的合理利用,在实际应用中,可以为数据缓存区域设置清除时间,即某一数据在数据缓存区域存放预设时间后,就自动清除。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
通过上述描述不难发现,本实施例中提供的基于区块链的数据查询方法,在利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据之前,通过确定待查询的区块链采用的编程语言,然后将生成的区块链数据查询表达式转换为所述区块链能够实现的编程语言,从而能够使上述数据查询方法适用于任意编程语言开发的区块链,在不增加用户操作的情况下,能够更好的服务于用户。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于区块链的数据查询程序,所述基于区块链的数据查询程序被处理器执行时实现如上文所述的基于区块链的数据查询方法的步骤。
参照图4,图4为本发明基于区块链的数据查询装置第一实施例的结构框图。
如图4所示,本发明实施例提出的基于区块链的数据查询装置包括:获取模块4001、确定模块4002、生成模块4003和查询模块4004。
具体的说,获取模块4001,用于接收用户触发的区块链数据查询请求,获取所述区块链数据查询请求对应的待查询问题;确定模块4002,用于对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件;生成模块4003,用于根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符,生成区块链数据查询表达式;查询模块4004,用于利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据。
此外,值得一提的是,本实施中所说的预设的查询表达式模板中的查询表达式为技术人员自定义的,其语法结构如下所示:
select{*|field[,…]}from blockchain[where search_condition];
其中,blockchain为要查询的区块链的名称,search_condition为所述区块筛选条件,field为所述目标数据筛选条件。
在实际应用中,该表达式的具体含义为:从某个“blockchain(区块链)”中查询符合“search_conditions(区块筛选条件)”条件的区块,并且仅仅显示“field(目标数据筛选条件)”所在字段的值。
应当理解的是,在具体应用中,“blockchain”所在的位置可以直接更换为要查询的区块链的名称或者地址,“search_conditions”所在的位置可以直接更换为确定的区块筛选条件,“field”所在的位置可以直接更换为确定的目标数据筛选条件。
也可以将“blockchain”、“search_conditions”、“field”这些变量预先定义为全局变量,直接在主函数中为上述各变量赋予相应的变量值,这样便可以无需替换区块链查询表达式中的出现的上述变量。
需要说明的是,以上举例说明,对本发明的技术方案并不构成任何限定,在具体实现中,本领域的技术人员可以根据需要进行设置,此处不做限制。
此外,在实际应用中,为了能够使确定模块4002快速的对用户提供的待查询文件头进行分析,并根据所述待查询问题准确的确定所述区块筛选条件和所述目标数据筛选条件。本实施例中提供的基于区块链的数据查询装置还可以包括:关键词提取模块。
其中,所述关键词提取模块,用于基于关键词提取技术,从所述待查询问题中提取至少一个关键词。
相应地,所述确定模块4002在对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件时,具体是通过对提取到的各关键词进行语义分析,然后根据各关键词的语义来确定所述区块筛选条件和所述目标数据筛选条件。
进一步地,由于本实施例中对用户提供的待查询问题的格式不做限制,因而在实际应用中待查询问题的可能是文本格式,也可能使语音格式,还可能是图片格式等。因而为了使所关键词提取模块准确的从所述待查询问题中提取出合适的关键词,所述基于区块链的数据查询装置还可以包括:格式确定模块、语音转文本模块和图片转文本模块。
其中,所述格式确定模块,用于确定所述待查询问题的格式。
所述语音转文本模块,用于在所述待查询问题为语音格式时,基于语音识别技术,将语音格式的待查询问题转换为文本格式的待查询问题。
所述图片转文本模块,用于在所述待查询问题为图片格式时,基于图像识别文字技术,将图片格式的待查询问题转换为文本格式的待查询问题。
相应地,所述关键词提取模块在进行关键词提取操作的时候,具体是基于关键词提取技术,从文本格式的待查询问题中提取至少一个关键词。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
此外,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
通过上述描述不难发现,本实施例中提供的基于区块链的数据查询装置,通过对用户提供的待查询问题进行分析,进而确定与所述待查询问题相关的区块筛选条件和目标数据筛选条件,使得用户在对存储于区块链中的数据进行查询时,只需提供待查询问题,无需根据按照特定语言手动编写查询语句,大大降低了对用户的要求,方便了用户的使用。
此外,本实施例在采用根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符生成的区块链数据查询表达式来进行数据查询操作的过程中,由于区块链数据查询表达式中同时设定了区块筛选条件和目标数据筛选条件,因而只需通过一次请求,便可以实现对整个区块链上符合区块筛选条件的区块的查询和符合目标数据筛选条件的数据查询,从而大大提高了数据的查询效率。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于区块链的数据查询方法,此处不再赘述。
基于上述基于区块链的数据查询装置的第一实施例,提出本发明基于区块链的数据查询装置第二实施例。
在本实施例中,所述基于区块链的数据查询装置还包括:区块链编程语言确定模块和区块链查询表达式语言转换模块。
具体的说,区块链编程语言确定模块,用于在所述查询模块利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据之前,确定所述区块链的编程语言。
所述区块链查询表达式语言转换模块,用于将所述区块链数据查询表达式转换为所述区块链能够识别的编程语言。
相应地,所述查询模块利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据的操作,可以具体细化为如下两个步骤:
首先,以所述区块筛选条件为第一查询目标,利用所述区块链数据查询引擎,采用所述区块链能够识别的编程语言,从所述区块链中查询出符合所述区块筛选条件的区块。
然后,以所述目标数据筛选条件为第二查询目标,利用所述区块链数据查询引擎,采用所述区块链能够识别的编程语言,对筛选出的各区块进行遍历,查询出符合所述目标数据筛选条件的数据。
需要说明的是,以上给出的仅仅为一种利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据的具体操作,对本发明的技术方案并不构成任何限定,在具体实现中,本领域的技术人员可以根据需要进行设置,此处不做限制。
此外,应当理解的是,在实际应用中存储在区块链中的数据通常是以二进制数据格式或者其他机器语言格式进行存储的,因而为了保证查找到的数据用户能够看懂,所述基于区块链的数据查询装置还可以包括:数据格式转换模块。
相应的,在查询模块查询到符合所述区块链数据查询表达式指定的数据,将查找到的数据展示在用户界面,供用户查看之前,先由所述数据格式转换模块根据预设解析规则对所述数据进行解析操作,以将查询到的数据转换为用户能够看懂的数据格式,比如将二进制数据转换为自然语言格式的数据。
此外,在实际应用中,为了进一步提升查询速度,选用的区块链数据查询引擎可以是内置缓存区域的。
相应地,在查询出符合所述目标数据筛选条件的数据之后,可以将查询出的所述数据存储到所述数据缓存区域,从而使得查询模块在进行下次查询操作的时候,可以先在该数据缓存区域进行一次查找,若所述数据缓存区域中存储有要查询的数据,则直接拿来使用;若所述数据缓存区域中没有要查询的数据,则生成区块链查询表达式,利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据。
此外,应当理解的是,为了保证数据缓存区域空间的合理利用,在实际应用中,可以为数据缓存区域设置清除时间,即某一数据在数据缓存区域存放预设时间后,就自动清除。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
此外,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
通过上述描述不难发现,本实施例中提供的基于区块链的数据查询装置,在利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据之前,通过确定待查询的区块链采用的编程语言,然后将生成的区块链数据查询表达式转换为所述区块链能够实现的编程语言,从而能够使上述数据查询方法适用于任意编程语言开发的区块链,在不增加用户操作的情况下,能够更好的服务于用户。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于区块链的数据查询方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于区块链的数据查询方法,其特征在于,所述方法包括以下步骤:
接收用户触发的区块链数据查询请求,获取所述区块链数据查询请求对应的待查询问题;
对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件;
根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符,生成区块链数据查询表达式;
利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据。
2.如权利要求1所述的方法,其特征在于,所述对所述待查询问题进行分析之前,所述方法还包括:
基于关键词提取技术,从所述待查询问题中提取至少一个关键词;
其中,所述对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件,包括:
对提取到的各关键词进行语义分析;
根据各关键词的语义,确定所述区块筛选条件和所述目标数据筛选条件。
3.如权利要求2所述的方法,其特征在于,所述基于关键词提取技术,从所述待查询问题中提取至少一个关键词之前,所述方法还包括:
确定所述待查询问题的格式;
若所述待查询问题为语音格式,则基于语音识别技术,将语音格式的待查询问题转换为文本格式的待查询问题;
若所述待查询问题为图片格式,则基于图像识别文字技术,将图片格式的待查询问题转换为文本格式的待查询问题;
其中,所述基于关键词提取技术,从所述待查询问题中提取至少一个关键词,包括:
基于关键词提取技术,从文本格式的待查询问题中提取至少一个关键词。
4.如权利要求1至3任一项所述的方法,其特征在于,所述查询表达式模板中的查询表达式的语法结构为:
select{*|field[,…]}from blockchain[where search_condition];
其中,blockchain为要查询的区块链的名称,search_condition为所述区块筛选条件,field为所述目标数据筛选条件。
5.如权利要求1至3任一项所述的方法,其特征在于,所述利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据之前,所述方法还包括:
确定所述区块链的编程语言;
将所述区块链数据查询表达式转换为所述区块链能够识别的编程语言。
6.如权利要求5所述的方法,其特征在于,所述利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据,包括:
以所述区块筛选条件为第一查询目标,利用所述区块链数据查询引擎,采用所述区块链能够识别的编程语言,从所述区块链中查询出符合所述区块筛选条件的区块;
以所述目标数据筛选条件为第二查询目标,利用所述区块链数据查询引擎,采用所述区块链能够识别的编程语言,对筛选出的各区块进行遍历,查询出符合所述目标数据筛选条件的数据。
7.如权利要求6所述的方法,其特征在于,所述区块链数据查询引擎中设置有数据缓存区域;
所述查询出符合所述目标数据筛选条件的数据之后,所述方法还包括:
将查询出的所述数据存储到所述数据缓存区域。
8.一种基于区块链的数据查询装置,其特征在于,所述装置包括:
获取模块,用于接收用户触发的区块链数据查询请求,获取所述区块链数据查询请求对应的待查询问题;
确定模块,用于对所述待查询问题进行分析,确定区块筛选条件和目标数据筛选条件;
生成模块,用于根据所述区块筛选条件、所述目标数据筛选条件、预设的查询表达式模板和查询表达式支持的运算符,生成区块链数据查询表达式;
查询模块,用于利用预设的区块链数据查询引擎,从区块链上查询符合所述区块链数据查询表达式指定的数据。
9.一种基于区块链的数据查询设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块链的数据查询程序,所述基于区块链的数据查询程序配置为实现如权利要求1至7中任一项所述的基于区块链的数据查询方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有基于区块链的数据查询程序,所述基于区块链的数据查询程序被处理器执行时实现如权利要求1至7任一项所述的基于区块链的数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910050975.8A CN109885583A (zh) | 2019-01-17 | 2019-01-17 | 基于区块链的数据查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910050975.8A CN109885583A (zh) | 2019-01-17 | 2019-01-17 | 基于区块链的数据查询方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109885583A true CN109885583A (zh) | 2019-06-14 |
Family
ID=66926294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910050975.8A Pending CN109885583A (zh) | 2019-01-17 | 2019-01-17 | 基于区块链的数据查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885583A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177182A (zh) * | 2019-12-19 | 2020-05-19 | 达闼科技成都有限公司 | 数据查询方法和装置、存储介质和电子设备 |
CN112732775A (zh) * | 2020-12-23 | 2021-04-30 | 深圳壹账通智能科技有限公司 | 区块节点数据的处理方法、装置、计算机设备和存储介质 |
CN113806402A (zh) * | 2021-09-14 | 2021-12-17 | 北京八分量信息科技有限公司 | 一种基于区块链的信息查询方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080177719A1 (en) * | 2007-01-24 | 2008-07-24 | Richard Dean Dettinger | Methods and systems for retrieving query results based on a data standard specification |
CN106445993A (zh) * | 2016-07-11 | 2017-02-22 | 天津米游科技有限公司 | 一种基于区块链的数据指纹查询方法及装置 |
CN107666388A (zh) * | 2016-07-28 | 2018-02-06 | 郑珂威 | 基于完全同态加密方法的区块链信息加密方法 |
CN108959631A (zh) * | 2018-07-24 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于查询信息的方法和装置 |
-
2019
- 2019-01-17 CN CN201910050975.8A patent/CN109885583A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080177719A1 (en) * | 2007-01-24 | 2008-07-24 | Richard Dean Dettinger | Methods and systems for retrieving query results based on a data standard specification |
CN106445993A (zh) * | 2016-07-11 | 2017-02-22 | 天津米游科技有限公司 | 一种基于区块链的数据指纹查询方法及装置 |
CN107666388A (zh) * | 2016-07-28 | 2018-02-06 | 郑珂威 | 基于完全同态加密方法的区块链信息加密方法 |
CN108959631A (zh) * | 2018-07-24 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于查询信息的方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177182A (zh) * | 2019-12-19 | 2020-05-19 | 达闼科技成都有限公司 | 数据查询方法和装置、存储介质和电子设备 |
CN112732775A (zh) * | 2020-12-23 | 2021-04-30 | 深圳壹账通智能科技有限公司 | 区块节点数据的处理方法、装置、计算机设备和存储介质 |
WO2022134830A1 (zh) * | 2020-12-23 | 2022-06-30 | 深圳壹账通智能科技有限公司 | 区块节点数据的处理方法、装置、计算机设备和存储介质 |
CN113806402A (zh) * | 2021-09-14 | 2021-12-17 | 北京八分量信息科技有限公司 | 一种基于区块链的信息查询方法及装置 |
CN113806402B (zh) * | 2021-09-14 | 2023-08-15 | 北京八分量信息科技有限公司 | 一种基于区块链的信息查询方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10423649B2 (en) | Natural question generation from query data using natural language processing system | |
CN104735468B (zh) | 一种基于语义分析将图像合成新视频的方法及系统 | |
US9507867B2 (en) | Discovery engine | |
US20130066818A1 (en) | Automatic Crowd Sourcing for Machine Learning in Information Extraction | |
CN110020422A (zh) | 特征词的确定方法、装置和服务器 | |
US9652452B2 (en) | Method and system for constructing a language model | |
CN101334774A (zh) | 一种字符输入的方法和输入法系统 | |
CN105045852A (zh) | 一种教学资源的全文搜索引擎系统 | |
CN110297880B (zh) | 语料产品的推荐方法、装置、设备及存储介质 | |
CN102915322A (zh) | 情感数据生成的系统和方法 | |
US20090112845A1 (en) | System and method for language sensitive contextual searching | |
CN109885583A (zh) | 基于区块链的数据查询方法、装置、设备及存储介质 | |
CN102890701A (zh) | 情感数据使用的系统和方法 | |
JP2004280574A (ja) | 翻訳システム、辞書更新サーバ、翻訳方法、及び、これらのプログラムと記録媒体 | |
JP4200834B2 (ja) | 情報検索システム、情報検索方法及び情報検索プログラム | |
CN107615270A (zh) | 一种人机交互方法及其装置 | |
JP2020135135A (ja) | 対話コンテンツ作成支援方法およびシステム | |
CN110286903A (zh) | 用户信息表单的构建方法、装置、设备及存储介质 | |
CN112416142A (zh) | 输入文字的方法、装置和电子设备 | |
CN109922131A (zh) | 基于区块链的数据存储方法、装置、设备及存储介质 | |
CN110209780A (zh) | 一种问题模板生成方法、装置、服务器及存储介质 | |
CN109783612B (zh) | 报表数据定位方法及装置、存储介质、终端 | |
CN105528341B (zh) | 具有领域定制功能的术语译文挖掘系统及方法 | |
JP5484113B2 (ja) | 文書画像関連情報提供装置、及び文書画像関連情報取得システム | |
US20230061773A1 (en) | Automated systems and methods for generating technical questions from technical documents |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190614 |
|
WD01 | Invention patent application deemed withdrawn after publication |