CN116089463A - 一种区块链中的全文搜索方法和装置 - Google Patents
一种区块链中的全文搜索方法和装置 Download PDFInfo
- Publication number
- CN116089463A CN116089463A CN202211738172.XA CN202211738172A CN116089463A CN 116089463 A CN116089463 A CN 116089463A CN 202211738172 A CN202211738172 A CN 202211738172A CN 116089463 A CN116089463 A CN 116089463A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- business
- transaction
- block
- 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
Images
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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供一种区块链中的全文搜索方法和装置,应用于区块链服务平台上部署的服务程序;包括:获取为所述区块链的各个区块配置的业务模型;其中,所述区块链的各个区块中存储了具有业务语义的业务数据;所述业务模型用于按照所述业务语义对所述区块链的各个区块中存储的交易数据进行数据解析得到所述业务数据;基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,并为数据解析得到的所述业务数据建立查询索引;将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使全文搜索引擎基于所述查询索引针对所述业务数据执行数据查询。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种区块链中的全文搜索方法和装置。
背景技术
区块链是一个去中心化的、无需信任第三方的分布式账本。区块链技术具有多方写入、公开透明、不可篡改等特点。区块链按照准入机制的不同,可以分为公链、联盟链以及私有链。对于公链来说,任何的节点都可以加入区块链网络。而联盟链具备访问控制功能,只有被授权的节点才可以加入联盟链网络,因此往往比公链网络更安全和高效,主要用于企业或机构间的相互合作。
在实际应用中,随着区块链在运行过程中数据的不断积累,越来越多的业务方开始对区块链上的数据产生搜索需求。因此,如何利用现有的数据搜索能力,按照业务方的业务需求,针对区块链上不断积累的数据进行数据搜索,将是区块链领域亟待解决的问题。
发明内容
本说明书一个或多个实施例提供技术方案如下:
本说明书提供一种区块链中的全文搜索方法,应用于区块链服务平台上部署的服务程序;包括:
获取为所述区块链的各个区块配置的业务模型;其中,所述区块链的各个区块中存储了具有业务语义的业务数据;所述业务模型用于按照所述业务语义对所述区块链的各个区块中存储的交易数据进行数据解析得到所述业务数据;
基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,以得到所述交易数据中包含的具有业务语义的所述业务数据,并为数据解析得到的所述业务数据建立查询索引;
将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使所述全文搜索引擎响应于数据查询方触发的针对所述业务数据的数据查询请求,基于所述查询索引针对所述业务数据执行数据查询。
本说明书还提供一种区块链中的全文搜索装置,应用于区块链服务平台上部署的服务程序;包括:
获取模块,获取为所述区块链的各个区块配置的业务模型;其中,所述区块链的各个区块中存储了具有业务语义的业务数据;所述业务模型用于按照所述业务语义对所述区块链的各个区块中存储的交易数据进行数据解析得到所述业务数据;
解析模块,基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,以得到所述交易数据中包含的具有业务语义的所述业务数据,并为数据解析得到的所述业务数据建立查询索引;
发送模块,将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使所述全文搜索引擎响应于数据查询方触发的针对所述业务数据的数据查询请求,基于所述查询索引针对所述业务数据执行数据查询。
本说明书还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如上述任一项所述的方法。
本说明书还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现如上述任一项所述的方法。
在以上技术方案中,一方面,可以在有业务需求之后,再为相关区块配置业务模型,并采用该业务模型来解析各个区块中存储的交易数据得到具有业务语义的业务数据,以完成对链上的数据进行业务搜索,从而使得整个搜索方式将更加灵活。
另一方面,可以利用全文搜索引擎,直接在区块链上存储的完整的原始数据的基础上,按照数据的内容针对这些原始数据中包含的具有特定语义的业务数据实时的进行全文搜索,而对于数据查询方而言,无需在数据上链阶段介入,对区块链的各个区块中存储的业务数据进行数据转存,从而可以降低对区块链的各个区块中存储的具有业务语义的业务数据进行搜索时的复杂度。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书根据一示例性实施例示出的一种针对区块链中存储的业务数据进行全文搜索的组网架构图;
图2是本说明书根据一示例性实施例示出的另一种针对区块链中存储的业务数据进行全文搜索的组网架构图;
图3是本说明书根据一示例性实施例示出的另一种针对区块链中存储的业务数据进行全文搜索的组网架构图;
图4是本说明书根据一示例性实施例示出的一种区块链中的全文搜索方法的流程图;
图5是本说明书根据一示例性实施例示出的一种为业务数据创建查询索引的示意图;
图6是本说明书根据一示例性实施例示出的一种电子设备的示意结构图;
图7是本说明书根据一示例性实施例示出的一种区块链***中的共识节点的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在公链中,通常可以提供对链上的交易、账户地址、合约地址等信息的搜索和关联交易的查询。例如,以公链的Blockchair、Amberdata、Etherscan等搜索引擎为例,其可以提供链上区块Hash、交易Hash、账户地址、智能合约入参及出参的搜索功能。
而在联盟链中,由于链上数据相比于公链更加复杂,具备更强的业务语义,而且联盟链对于上链数据的隐私性要求也较高,链上具有业务语义的数据在不同联盟成员之间的可见性需求通常也会存在一定的差异。这就导致一些基于公链的数据搜索方案,无法直接适配联盟链环境。
在相关技术中,为了对链上数据中包含的具有业务语义的业务数据进行数据搜索,通常可以在数据上链阶段介入,对链上的各个区块中存储的具有业务语义的业务数据进行提取,然后将提取出的业务数据转存至数据库,然后基于该数据库针对这些业务数据进行数据搜索。
然而,通过数据转存的方式,不仅会增加对业务数据进行搜索时的复杂度,而且由于转存的数据并不是原始的全量数据,因此无法实现直接在区块链上存储的原始的全量数据的基础上,按照数据的内容针对这些原始数据中包含的具有特定语义的业务数据进行全文搜索。
有鉴于此,本说明书提供一种针对区块链上存储的具有业务语义的业务数据进行全文搜索的解决方案。
在实现时,可以在区块链服务平台上部署一个用于对链上数据进行数据解析的服务程序;该服务程序在对链上数据进行数据解析时,可以获取为区块链的各个区块配置的业务模型;其中,区块链的各个区块中可以存储了具有业务语义的业务数据;该业务模型具体可以用于按照上述业务语义对区块链的各个区块中存储的交易数据进行数据解析得到上述业务数据;
然后,可以基于获取到的业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,以得到该交易数据中包含的具有业务语义的业务数据,并为数据解析得到的业务数据建立查询索引;再将建立了查询索引的业务数据发送至与区块链服务平台对接的全文搜索引擎。而该全文搜索引擎在收到数据查询方触发的针对该业务数据的数据查询请求时,恶意响应于该数据查询请求,基于上述查询索引针对该业务数据执行数据查询。
在以上技术方案中,一方面,可以在有业务需求之后,再为相关区块配置业务模型,并采用该业务模型来解析各个区块中存储的交易数据得到具有业务语义的业务数据,以完成对链上的数据进行业务搜索,从而使得整个搜索方式将更加灵活。
另一方面,可以利用全文搜索引擎,直接在区块链上存储的完整的原始数据的基础上,按照数据的内容针对这些原始数据中包含的具有特定语义的业务数据实时的进行全文搜索,而对于数据查询方而言,无需在数据上链阶段介入,对区块链的各个区块中存储的业务数据进行数据转存,从而可以降低对区块链的各个区块中存储的具有业务语义的业务数据进行搜索时的复杂度。
请参见图1,图1是本说明书根据一示例性实施例示出的针对区块链中存储的业务数据进行全文搜索的组网架构图。
如图1所示,上述组网架构中可以包括以下的几个部分:
1:区块链节点
区块链节点,用于存储和维护在区块链上产生的原始的区块数据。
2:业务模型管理服务
该业务模型管理服务,具体可以是区块链服务平台(比如Baas平台)上部署的一个服务程序,负责管理为区块链的各个区块配置的业务模型,并提供关于业务模型的存储和查询功能。
其中,区块链的各个区块中可以存储了由不同的业务方发布的具有业务语义的业务数据。
而上述业务模型,则可以用于按照上述业务语义对区块链的各个区块中存储的交易数据进行数据解析得到上述业务数据。
例如,业务方在区块链上存证的具有业务语义的业务数据一般由多个包含业务语义的Key-Value键值对组成,而这些具有业务语义的Key-Value键值对,通常可以包含在交易中的“data”字段内,以及包含在交易执行成功后生成的交易收据(receipt)中,等等。而上述业务模型可以按照上述业务语义,对区块中包含的交易和交易收据等交易数据进行数据解析,还原出具有业务语义的Key-Value键值对。
3:数据解析服务
该数据解析服务(即图1示出的数据导出服务),具体也可以是区块链服务平台上部署的一个服务程序,负责实时的从区块链节点获取原始区块,然后使用业务模型管理服务管理的业务模型,对这些原始区块包含的交易数据进行数据解析,并为解析得到的业务数据创建查询索引,然后提交给与区块链服务平台对接的全文搜索引擎。
例如,在一个例子中,区块链服务平台上通常都会部署一个标准化的数据导出服务程序,该数据导出服务程序除了可以用于对链上数据进行数据导出以外,通常也具有对链上数据进行数据解析的功能;在这种情况下,上述数据解析服务具体可以是该数据导出服务程序。
4:全文搜索引擎
所谓的全文搜索,是指不需要对数据进行局部转存,而是在完整的全量的原始数据的基础上,按照数据的内容进行全局搜索。全文数据搜索引擎,具体负责接收搜索控制台发送的查询请求,并响应于该查询骑牛基于数据解析服务提交的携带查询索引的业务数据,进行全文搜索。
其中,该全文数据搜索引擎的具体类型,在本说明书中不进行特别限定;例如,在一个例子中,该全文数据搜索引擎具体可以采用诸如ElasticSearch搜索引擎。
5:搜索网关
该搜索网关,负责接收数据查询方在搜索控制台上触发的查询请求,并将该查询请求提交给全文搜索引擎发起全文搜索,然后将全文搜索引擎返回的查询结果发送给搜索控制台。
6:搜索控制台
搜索控制台,负责接收数据查询方触发的查询请求,并将该查询请求发送给搜索网关,以及接收搜索网关返回的查询结果,然后将查询结果通过web页面向数据查询方进行呈现。
需要说明的是,在实际应用中,图1示出的网络架构,还可以扩展成支持针对多个区块链的聚合搜索的网络架构。
请参见图2,图2是本说明书根据一示例性实施例示出的另一种针对区块链中存储的业务数据进行全文搜索的组网架构图。
在图2中,数据导出服务可以从多条区块链获取数据进行数据解析,并为解析出的业务数据创建查询索引,写入搜索引擎,来实现多条链的数据聚合搜索。
请参见图3,图3是本说明书根据一示例性实施例示出的另一种针对区块链中存储的业务数据进行全文搜索的组网架构图。
在图3中,可以通过搜索网关代理,对不同的搜索网关的搜索结果进行聚合,实现不同网络环境中的多条区块链的数据聚合搜索。
请参见图4,图4是本说明书根据一示例性实施例示出的区块链中的全文搜索方法的流程图,所该方法可以应用于区块链服务平台上部署的用于对链上数据进行数据解析的服务程序;所述方法包括:
步骤402,获取为所述区块链的各个区块配置的业务模型;其中,所述区块链的各个区块中存储了具有业务语义的业务数据;所述业务模型用于按照所述业务语义对所述区块链的各个区块中存储的交易数据进行数据解析得到所述业务数据;
上述用于对链上数据进行数据解析的服务程序,具体可以是图1中示出的数据解析服务。其中,需要说明的是,该数据解析服务通常是指,在功能上具有针对链上数据的数据解析能力的服务程序。
例如,在一个例子中,区块链服务平台上通常都会部署一个标准化的数据导出服务程序,该数据导出服务程序除了可以用于对链上数据进行数据导出以外,通常也具有对链上数据进行数据解析的功能;在这种情况下,上述数据解析服务具体可以是该数据导出服务程序。
区块链的各个区块中存储的交易数据中,可以包括接入区块链的各个业务方在区块链上存证的具有业务语义的业务数据。
在实际应用中,接入区块链的业务方在区块链上存证的具有业务语义的业务数据,一般由多个包含业务语义的Key-Value键值对组成,而这些具有业务语义的Key-Value键值对,通常可以包含在交易中的“data”字段内,以及包含在交易执行成功后生成的交易收据(receipt)中,等等。
例如,以通过调用智能合约来存证业务数据为例,在这种情况下,上述交易可以为智能合约调用交易,上述业务数据通常可以包括,该智能合约调用交易的“data”字段(即交易载荷)中包含的调用输入数据(即发起合约调用时的输入参数),该包含在交易收据中的智能合约执行结果,以及包含在交易收据中的智能合约调用完成后产生的智能合约事件。
又如,以通过原生存证的方式来存证业务数据为例,在这种情况下,上述交易可以是除了智能合约调用交易以外的原生存证交易,上述业务数据通常可以包括该交易的“data”字段中包含的交易内容数据,以及包含在交易收据中的交易执行结果。
在实际应用中,各个业务方在区块链上存证的业务数据的业务语义,通常与各个业务方的业务相关,而不同的业务方的业务通常会存在明显的差异,这就会导致不同的业务方在区块链上存证的业务数据的业务语义,通常也会存在明显的差异法。比如,某一个业务方在链上存证的一个具有特殊业务语义的key-value键值对,即便以明文形式展示给其它的业务方,该其它的业务方通常也无法了解到真实的业务含义。
基于此,为了确保能够正确解析出各个业务方在区块链上存证的业务数据,各个业务方除了可以将与自身的业务相关的具有特定的业务语义的业务数据在区块链上存证以外,还可以为存证这些业务数据的区块,分别配置业务模型。例如,请参见图1,各个业务方可以通过上述业务模型管理服务,来为存证其业务数据的区块配置业务模型。
其中,该业务模型,具体可以用于按照上述业务数据的业务语义,对区块链的各个区块中存储的交易数据进行数据解析,以正确还原出上述业务数据。
需要说明的是,上述数据模型的具体形式,在本说明书中不再进行特别限定。
在示出的一种实施方式中,上述业务模型具体可以是一个用于描述上述业务语义的数据模型,在该数据模型中,具体可以包含与上述业务语义相关的数据结构对应的描述数据。比如,该描述数据具体可以是区块中存储的交易数据包含的业务数据对应的数据类型,以及交易数据包含的业务数据在该交易数据中的数据顺序,等等。除此之外,由于区块链的各个区块中存储的交易数据通常会按照预设的编码方式进行数据编码处理,因此上述数据模型中还可以包含与上述预设的编码方式对应的解码方式。
例如,以通过调用智能合约来存证业务数据为例,在这种情况下,上述交易可以为智能合约调用交易,而上述业务模型则可以是该智能合约在编译时生成的合约接口描述文件。当然,在通过原生存证的方式来存证业务数据的情况下,上述交易也可以是除了智能合约调用交易以外的原生存证交易,此时上述业务模型则可以是与该原生存证交易的处理流程相关的描述文件。
在本说明书中,当业务方为存证其业务数据的各个区块,配置了业务模型之后,上述数据解析服务可以实时的获取这些区块对应的区块数据,以及为这些区块配置的业务模型;
例如,请参见图1,上述数据解析服务一方面可以实时的从区块链节点上获取这些区块的区块数据,另一方面还可以从区块链服务平台上部署的业务模型管理服务程序处,获取为这些区块配置的业务模型。
步骤404,基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,以得到所述交易数据中包含的具有业务语义的所述业务数据,并为数据解析得到的所述业务数据建立查询索引;
上述数据解析服务在获取到业务模型之后,可以基于获取到的业务模型对各个区块中存储的交易数据分别进行数据解析,以得到具有业务语义的业务数据。
在示出的一种实施方式中,如前所述,上述业务模型具体可以包含与上述业务语义相关的数据结构对应的描述数据;在这种情况下,上述数据解析服务在对各个区块中存储的交易数据进行数据解析时,具体可以基于获取到的业务模型包含的上述描述数据,来对各个区块中存储的交易数据的数据结构进行解析,以得到交易数据中包含的具有业务语义的业务数据。
在示出的一种实施方式中,如前所述,由于区块链的各个区块中存储的交易数据通常会按照预设的编码方式进行数据编码处理,因此上述数据模型中除了可以包含与上述业务语义相关的数据结构对应的描述数据以外,还可以包含与上述预设的编码方式对应的解码方式;在这种情况下,上述数据解析服务在对各个区块中存储的交易数据进行数据解析时,具体可以先基于获取到的业务模型包含的所述解码方式,对各个区块中存储的交易数据进行解码,并在解码完成后,再基于业务模型包含的上述描述数据,对各个区块中存储的交易数据的数据结构进行解析。
当完成数据解析后,上述数据解析服务还可以为解析得到的上述业务数据,创建查询索引。
其中,在示出的一种实施方式,为上述业务数据创建的查询索引,具体可以包括为交易数据中包含的关键字段建立的基础查询索引;以及,为数据解析得到的业务数据建立业务查询索引。上述关键字段,具体可以是交易的数据格式中包含的基础字段;比如,交易格式中的from字段,to字段,等等。
通过为业务数据同时创建基础查询索引和业务查询索引,使得在基于查询索引针对业务数据发起查询时,除了可以在业务层面针对业务数据发起查询以外,还可以基于基础查询索引来辅助在业务层面发起的查询,实现精准查询。
例如,交易的数据格式中的from字段和to字段,分别是指发起该笔交的账户和交易接收者账户,而在基于from字段和to字段的基础查询索引和上述业务查询索引针对业务数据发起查询时,就可以实现针对具体的某个账户发起的交易里携带的具有业务语义的业务数据的精确查询;反之,如果不建立与from字段和to字段对应的基础查询索引,则只能对交易里携带的具有业务语义的业务数据进行模糊查询,而无法将查询范围限缩到具体的某个账户发起的交易。
当然,在实际应用中,为上述业务数据创建的查询索引,具体也可以不包括为交易数据中包含的关键字段建立的基础查询索引,在本说明书中不进行特别限定。
在示出的一种实施方式中,业务方为存证其业务数据的各个区块配置的业务模型,还可以预先指定生效区间;其中,该生效区间可以是一个区块号区间,可以记为[N,M]。其中,N表示所述业务模型开始生效的起始区块号,M表示所述业务模型失效的结束区块号。在实际应用中,业务方可以按照自身的业务数据在区块链上的存证情况,来设置上述生效区间。
例如,假设业务方从业务数据的存证回执中了解到,其自身的业务数据存证在了从第N到第M个区块上,则可以把上述生效区间设置为[N,M]。
在实际应用中,业务方配置的业务模型,可能是动态变化的;比如,业务方在某个区块号配置了新的业务模型,或者在某个区块号对原有的业务模型进行了更新。因此,为了应对业务模型的动态变化,上述数据解析服务,可以在数据解析以及索引建立过程使用分批重索引的方式创建并更新索引数据。
在示出的一种实施方式中,请参见图5,假设在第T个区块配置了新的业务模型,或者在第T个区块对原有的业务模型进行了更新;其中,T的取值大于N且小于M。
在这种情况下,上述数据解析服务,可以基于持续运行的第一任务对处于区间[T,M]中的各个区块中存储的交易数据分别进行数据解析,并为数据解析得到的所述业务数据建立查询索引;除此之外,上述数据解析服务还可以动态创建一个第二任务,并运行该第二任务重新对处于区间[N,T]中的各个区块中存储的交易数据分别进行数据解析,并为数据解析得到的所述业务数据建立查询索引,然后在索引建立完成后结束该第二任务。上述第一任务和第二任务,具体可以是上述数据解析服务创建的一个任务线程。
通过这种方式,第二任务执行结束后,最终得到的查询索引就包含了业务模型的生效区间中的各个区块所包含的业务数据对应的查询索引。
步骤406,将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使所述全文搜索引擎响应于数据查询方触发的针对所述业务数据的数据查询请求,基于所述查询索引针对所述业务数据执行数据查询。
上述数据解析服务在为数据解析得到的业务数据创建了查询索引之后,可以将建立了查询索引的业务数据发送至与区块链服务平台对接的全文搜索引擎。后续全文搜索引擎在收到数据查询方触发的针对该业务数据的数据查询请求后,可以响应于该数据查询请求,基于上述查询索引针对该业务数据执行数据查询。
在示出的一种实施方式中,数据解析服务除了还为数据解析得到的业务数据创建查询索引以外,为了便于对业务数据的查看权限进行控制,还可以为数据解析得到的业务数据添加属性标识;例如,上述属性标识具体可以包括业务模型的模型标识,或者区块链的链标识,等等。
其中,该属性标识具体可以关联针对该业务数据的数据查看权限;需要说明的是,在实际应用中,为业务数据添加的属性标识,具体可以是一个在查询索引的基础上,为业务数据额外添加的一个属性标识,也可以作为查询索引的一部分(比如作为查询索引中的一个具体的属性值),在本说明书中不进行特别限定。
然后,可以将建立了查询索引并添加了上述属性标识的业务数据发送至与区块链服务平台对接的全文搜索引擎。后续全文搜索引擎在收到数据查询方触发的针对该业务数据的数据查询请求后,可以响应于该数据查询请求,校验数据查询方是否具有与上述属性标识关联的数据查看权限;如果是,进一步基于该查询索引针对业务数据执行数据查询,并将查询结果返回给数据查询方进行输出展示;比如,请参见图1,可以将查询结果通过搜索网关发送给搜索控制台向数据查询方进行输出呈现。当然,如果经过校验,确定该数据查询方不具有与上述属性标识关联的数据查看权限,则可以屏蔽查询结果,不将该查询结果返回给上述数据查询方。
例如,在一个例子中,如果上述区块链为联盟链,上述数据查询方可以是联盟链中的联盟成员,通过这种方式,可以对具有业务语义的业务数据在不同联盟成员之间的可见性进行权限控制。
在以上技术方案中,一方面,业务方可以在有业务需求之后,再为相关区块配置业务模型,并采用该业务模型来解析各个区块中存储的交易数据得到具有业务语义的业务数据,以完成对链上的数据进行业务搜索,从而使得整个搜索方式将更加灵活。
另一方面,可以利用全文搜索引擎,直接在区块链上存储的完整的原始数据的基础上,按照数据的内容针对这些原始数据中包含的具有特定语义的业务数据实时的进行全文搜索,而对于数据查询方而言,无需在数据上链阶段介入,对区块链的各个区块中存储的业务数据进行数据转存,从而可以降低对区块链的各个区块中存储的具有业务语义的业务数据进行搜索时的复杂度。
图6是一示例性实施例提供的一种电子设备的示意结构图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑模块,也可以是硬件或逻辑器件。
如图7所示,图7是本说明书根据一示例性实施例示出的一种区块链中的全文搜索装置的框图,应用于区块链服务平台上部署的服务程序;该装置可以应用于如图6所示的电子设备中,以实现本说明书的技术方案。所述装置包括:
获取模块702,获取为所述区块链的各个区块配置的业务模型;其中,所述区块链的各个区块中存储了具有业务语义的业务数据;所述业务模型用于按照所述业务语义对所述区块链的各个区块中存储的交易数据进行数据解析得到所述业务数据;
解析模块704,基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,以得到所述交易数据中包含的具有业务语义的所述业务数据,并为数据解析得到的所述业务数据建立查询索引;
发送模块706,将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使所述全文搜索引擎响应于数据查询方触发的针对所述业务数据的数据查询请求,基于所述查询索引针对所述业务数据执行数据查询。
上述装置的各个模块的具体细节已经在之前描述的方法流程中进行了详细的描述,因此此处不再赘述。
相应的,本说明书还提供一种电子设备,所述电子设备包括有处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现之前描述的全部的方法流程中的步骤。
相应的,本说明书还提供一种计算机可读存储介质,其上存储有可执行的指令;其中,该指令被处理器执行时,实现之前描述的全部的方法流程中的步骤。
对于装置实施例而言,其基本对应于方法实施例,因此相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书的技术方案的目的。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (17)
1.一种区块链中的全文搜索方法,应用于区块链服务平台上部署的服务程序;包括:
获取为所述区块链的各个区块配置的业务模型;其中,所述区块链的各个区块中存储了具有业务语义的业务数据;所述业务模型用于按照所述业务语义对所述区块链的各个区块中存储的交易数据进行数据解析得到所述业务数据;
基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,并为数据解析得到的所述业务数据建立查询索引;
将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使所述全文搜索引擎响应于数据查询方触发的针对所述业务数据的数据查询请求,基于所述查询索引针对所述业务数据执行数据查询。
2.如权利要求1所述的方法,所述服务程序包括所述区块链服务平台上部署的用于对所述区块链中的区块数据进行数据导出的数据导出服务程序。
3.如权利要求1所述的方法,所述全文搜索引擎为ElasticSearch搜索引擎。
4.如权利要求2所述的方法,所述区块链服务平台上还部署了用于对所述业务模型进行管理的业务模型管理服务程序;
获取为所述区块链的各个区块配置的业务模型,包括:
从所述区块链服务平台上部署的所述业务模型管理服务程序处获取为所述区块链的各个区块配置的业务模型。
5.如权利要求1所述的方法,所述业务模型包含与所述业务语义相关的数据结构对应的描述数据;
基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,以得到所述交易数据中包含的具有业务语义的所述业务数据,包括:
基于获取到的所述业务模型包含的所述描述数据,对所述区块链的各个区块中存储的交易数据的数据结构进行解析,以得到所述交易数据中包含的具有业务语义的所述业务数据。
6.如权利要求5所述的方法,所述区块链的各个区块中存储的交易数据按照预设的编码方式进行了数据编码处理;所述业务模型还包含与所述预设的编码方式对应的解码方式;
基于获取到的所述业务模型包含的所述描述数据,对所述区块链的各个区块中存储的交易数据的数据结构进行解析,以得到所述交易数据中包含的具有业务语义的所述业务数据,包括:
基于获取到的所述业务模型包含的所述解码方式,对所述区块链的各个区块中存储的交易数据进行解码,并在解码完成后,基于所述业务模型包含的所述描述数据,对所述区块链的各个区块中存储的交易数据的数据结构进行解析,以得到所述交易数据中包含的具有业务语义的所述业务数据。
7.如权利要求1所述的方法,为数据解析得到的所述业务数据建立查询索引,包括:
为所述交易数据中包含的关键字段建立基础查询索引;以及,
为数据解析得到的所述业务数据建立业务查询索引。
8.如权利要求7所述的方法,所述交易数据包括所述区块链的各个区块中存储的交易以及所述交易执行完毕后生成的交易收据。
9.如权利要求8所述的方法,如果所述交易为智能合约调用交易,所述业务数据包括该智能合约调用交易的交易载荷中包含的调用输入数据,包含在所述交易收据中的智能合约执行结果,以及包含在所述交易收据中的智能合约事件;
如果所述交易为除了智能合约调用交易以外的原生交易,所述业务数据包括该交易的交易载荷中包含的交易内容数据,包含在所述交易收据中的交易执行结果。
10.如权利要求9所述的方法,如果所述交易为智能合约调用交易,则所述业务模型为所述智能合约在编译时生成的合约接口描述文件。
11.如权利要求1所述的方法,所述具有业务语义的业务数据包括具有业务语义的key-value键值对。
12.如权利要求1所述的方法,所述业务模型被配置了生效区间[N,M];其中,所述N表示所述业务模型开始生效的起始区块号,所述M表示所述业务模型失效的结束区块号;
基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,并为数据解析得到的所述业务数据建立查询索引包括:
如果在所述区块链中的第T个区块配置了所述业务模型,或者在所述第T个区块对所述业务模型进行了更新,则基于持续运行的第一任务对处于区间[T,M]中的各个区块中存储的交易数据分别进行数据解析,为数据解析得到的所述业务数据建立查询索引;以及,
动态创建第二任务,并运行所述第二任务对处于区间[N,T]中的各个区块中存储的交易数据分别进行数据解析,为数据解析得到的所述业务数据建立查询索引,并在索引建立完成后结束所述第二任务;其中,所述T的取值大于N且小于M。
13.如权利要求1所述的方法,将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎之前,还包括:
为数据解析得到的所述业务数据添加属性标识;其中,所述属性标识关联了针对所述业务数据的数据查看权限;
所述将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使所述全文搜索引擎响应于数据查询方触发的针对所述业务数据的数据查询请求,基于所述查询索引针对所述业务数据执行数据查询,包括:
将建立了查询索引并添加了所述属性标识的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使所述全文搜索引擎响应于数据查询方触发的针对所述业务数据的数据查询请求,校验所述数据查询方是否具有与所述属性标识关联的针对所述业务数据的数据查看权限;如果是,进一步基于所述查询索引针对所述业务数据执行数据查询,并将查询结果返回给所述数据查询方进行输出展示。
14.如权利要求1所述的方法,所述区块链为联盟链;所述数据查询方为所述联盟链中的联盟成员。
15.一种区块链中的全文搜索装置,应用于区块链服务平台上部署的服务程序;包括:
获取模块,获取为所述区块链的各个区块配置的业务模型;其中,所述区块链的各个区块中存储了具有业务语义的业务数据;所述业务模型用于按照所述业务语义对所述区块链的各个区块中存储的交易数据进行数据解析得到所述业务数据;
解析模块,基于获取到的所述业务模型对所述区块链的各个区块中存储的交易数据分别进行数据解析,以得到所述交易数据中包含的具有业务语义的所述业务数据,并为数据解析得到的所述业务数据建立查询索引;
发送模块,将建立了查询索引的所述业务数据发送至与所述区块链服务平台对接的全文搜索引擎,以使所述全文搜索引擎响应于数据查询方触发的针对所述业务数据的数据查询请求,基于所述查询索引针对所述业务数据执行数据查询。
16.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至14任一项所述的方法。
17.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211738172.XA CN116089463A (zh) | 2022-12-30 | 2022-12-30 | 一种区块链中的全文搜索方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211738172.XA CN116089463A (zh) | 2022-12-30 | 2022-12-30 | 一种区块链中的全文搜索方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116089463A true CN116089463A (zh) | 2023-05-09 |
Family
ID=86200417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211738172.XA Pending CN116089463A (zh) | 2022-12-30 | 2022-12-30 | 一种区块链中的全文搜索方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116089463A (zh) |
-
2022
- 2022-12-30 CN CN202211738172.XA patent/CN116089463A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949447B2 (en) | Blockchain-based data synchronizing and data block parsing method and device | |
US11875400B2 (en) | Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (DLT) | |
US11876910B2 (en) | Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT) | |
US20210232558A1 (en) | Data isolation in a blockchain network | |
CN111782668B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
US10572685B1 (en) | Protecting sensitive data | |
US11853291B2 (en) | Privacy preserving architecture for permissioned blockchains | |
CN112241506B (zh) | 用户行为的回溯方法、装置、设备及*** | |
CN111898139B (zh) | 数据读写方法及装置、电子设备 | |
CN112749749B (zh) | 基于分类决策树模型的分类方法、装置及电子设备 | |
US11762839B2 (en) | Search method using data structure for supporting multiple search in blockchain-based IoT environment, and device according to method | |
US11281438B2 (en) | Platform for web services development and method therefor | |
US20210256012A1 (en) | Methods and apparatuses for reading and updating data structures, and electronic devices | |
CN112819617B (zh) | 数据上链方法及装置、电子设备、存储介质 | |
CN112328486A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
Garcia Bringas et al. | BlockChain platforms in financial services: current perspective | |
CN108694664A (zh) | 业务***的核对方法及装置、电子设备 | |
Wang | [Retracted] Multimedia Filtering Analysis of Massive Information Combined with Data Mining Algorithms | |
CN116089463A (zh) | 一种区块链中的全文搜索方法和装置 | |
Sagar et al. | System design: architecting robust, scalable, and modular applications | |
Feng et al. | Digital teaching management system based on deep learning of internet of things | |
US20240193474A1 (en) | Distributed ledger based feature set tracking | |
CN106547626A (zh) | 用于对等架构均衡服务器的方法及服务器 | |
CN116932529A (zh) | 数据处理方法及其装置、存储介质、程序产品 | |
CN118260831A (zh) | 建筑信息模型bim模型数据处理方法、装置、电子设备和存储介质 |
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 |