[go: up one dir, main page]

CN111339193B - 类别的编码方法及装置 - Google Patents

类别的编码方法及装置 Download PDF

Info

Publication number
CN111339193B
CN111339193B CN202010109043.9A CN202010109043A CN111339193B CN 111339193 B CN111339193 B CN 111339193B CN 202010109043 A CN202010109043 A CN 202010109043A CN 111339193 B CN111339193 B CN 111339193B
Authority
CN
China
Prior art keywords
category
target
code
class
codes
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.)
Active
Application number
CN202010109043.9A
Other languages
English (en)
Other versions
CN111339193A (zh
Inventor
朱江涛
周洪飞
杨鑫
崔文盛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Cloud Computing Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Cloud Computing Beijing Co Ltd
Priority to CN202010109043.9A priority Critical patent/CN111339193B/zh
Publication of CN111339193A publication Critical patent/CN111339193A/zh
Application granted granted Critical
Publication of CN111339193B publication Critical patent/CN111339193B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种类别的编码方法及装置;方法包括:获取目标类别所对应的类别层级关系;根据所述类别层级关系,确定所述目标类别所属的父类别及所述父类别所包括的至少两个子类别;获取所述父类别的类别编码、及所述至少两个子类别的类别编码状态;根据所述至少两个子类别的类别编码状态,为所述目标类别分配层级编码;根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码;存储所述目标类别的类别编码,所述类别编码用于供搜索与所述目标类别相关联的类别信息。通过本发明,能够提高搜索与目标类别相关联的类别信息的搜索效率。

Description

类别的编码方法及装置
技术领域
本发明涉及云存储技术,尤其涉及一种类别的编码方法及装置。
背景技术
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云存储(cloudstorage)是在云计算概念上延伸和发展出来的一个新的概念,通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
在对数据进行存储时,通常需要对数据进行分类,如某个物品属于某个分类,同时类别本身存在多级结构,即每个分类都可能存在多个子分类,子分类下又可能有若干子分类。相关技术中,通常采用分类树结构来描述一个多级的分类结构,即为每个类别随机生成一个身份标识(ID,Identity Document),每个类别用(ID,父类别ID)来描述,如此,在搜索某一类别相关联的类别信息时,需要对分类树进行逐层遍历,导致搜索效率低。
发明内容
本发明实施例提供一种类别的编码方法及装置,能够提高搜索与目标类别相关联的类别信息的搜索效率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种类别的编码方法,包括:
获取目标类别所对应的类别层级关系;
根据所述类别层级关系,确定所述目标类别所属的父类别及所述父类别所包括的至少两个子类别;
获取所述父类别的类别编码、及所述至少两个子类别的类别编码状态;
根据所述至少两个子类别的类别编码状态,为所述目标类别分配层级编码;
根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码;
存储所述目标类别的类别编码,所述类别编码用于供搜索与所述目标类别相关联的类别信息。
上述方案中,所述分别将各物品的类别编码与所述目标类别的类别编码进行匹配,得到归属于所述目标类别的物品,包括:
响应于针对所述目标类别的第一搜索请求,获取所述目标类别的类别编码;
分别将各物品的类别编码与所述目标类别的类别编码进行匹配,得到归属于所述目标类别的物品;
呈现所述归属于所述目标类别的物品所对应的物品信息。
上述方案中,所述方法还包括:当类别编码为数值类型时,根据所述目标类别的类别编码,确定所述目标类别的编码区间;
分别将各物品的类别编码与所述编码区间进行数值比较,将类别编码处于所述编码区间内的物品确定为归属于所述目标类别的物品。
上述方案中,所述方法还包括:响应于针对所述目标类别的第二搜索请求,获取所述目标类别的类别编码;
从所述类别编码中,确定所述目标类别的父类别的类别编码;
根据所述目标类别的父类别的类别编码,确定所述目标类别所属的父类别;
获取并呈现归属于所述父类别的至少两个子类别的类别信息。
上述方案中,所述根据所述父类别所包括的至少两个子类别的类别编码状态,为所述目标类别分配层级编码,包括:
根据所述父类别所包括的至少两个子类别的类别编码状态,确定至少一个子类别的类别编码状态为已编码状态时,获取已编码状态的至少一个子类别的类别编码;
从所述已编码状态的至少一个子类别的类别编码中,提取所述子类别的层级编码;
根据所述子类别的层级编码,生成所述目标类别的层级编码。
上述方案中,所述根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码,包括:
将所述父类别的类别编码与所述目标类别的层级编码进行拼接,得到所述目标类别的类别编码。
上述方案中,所述根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码,包括:
获取所述目标类别对应的层级、及类别编码的编码长度;
根据所述目标类别对应的层级,从所述父类别的类别编码中第一个字符开始,选取目标数量的字符,所述目标数量与所述目标类别对应的层级相对应;
将所述目标数量的字符与所述目标类别的层级编码进行拼接,得到拼接编码;
根据所述拼接编码的编码长度与所述类别编码的编码长度,调整所述拼接编码,得到所述目标类别的类别编码。
上述方案中,所述方法还包括:
获取所述父类别所包括的至少两个子类别的搜索频次;
根据所述搜索频次,调整所述父类别所包括的至少两个子类别的层级编码的编码顺序。
上述方案中,所述方法还包括:
存储所述目标类别的类别编码至区块链网络。
本发明实施例提供一种类别的编码装置,包括:
第一获取模块,用于获取目标类别所对应的类别层级关系;
确定模块,用于根据所述类别层级关系,确定所述目标类别所属的父类别及所述父类别所包括的至少两个子类别;
第二获取模块,用于获取所述父类别的类别编码、及所述至少两个子类别的类别编码状态;
第一编码模块,用于根据所述至少两个子类别的类别编码状态,为所述目标类别分配层级编码;
第二编码模块,用于根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码;
存储模块,用于存储所述目标类别的类别编码,所述类别编码用于供搜索与所述目标类别相关联的类别信息。
上述方案中,所述装置还包括:
第一搜索模块,用于响应于针对所述目标类别的第一搜索请求,获取所述目标类别的类别编码;
分别将各物品的类别编码与所述目标类别的类别编码进行匹配,得到归属于所述目标类别的物品;
呈现所述归属于所述目标类别的物品所对应的物品信息。
上述方案中,所述第一搜索模块,用于当类别编码为数值类型时,根据所述目标类别的类别编码,确定所述目标类别的编码区间;
分别将各物品的类别编码与所述编码区间进行数值比较,将类别编码处于所述编码区间内的物品确定为归属于所述目标类别的物品。
上述方案中,所述装置还包括:
第二搜索模块,用于响应于针对所述目标类别的第二搜索请求,获取所述目标类别的类别编码;
从所述类别编码中,确定所述目标类别的父类别的类别编码;
根据所述目标类别的父类别的类别编码,确定所述目标类别所属的父类别;
获取并呈现归属于所述父类别的至少两个子类别的类别信息。
上述方案中,所述第一编码模块,还用于根据所述父类别所包括的至少两个子类别的类别编码状态,确定至少一个子类别的类别编码状态为已编码状态时,获取已编码状态的至少一个子类别的类别编码;
从所述已编码状态的至少一个子类别的类别编码中,提取所述子类别的层级编码;
根据所述子类别的层级编码,生成所述目标类别的层级编码。
上述方案中,所述第二编码模块,还用于将所述父类别的类别编码与所述目标类别的层级编码进行拼接,得到所述目标类别的类别编码。
上述方案中,所述第二编码模块,还用于获取所述目标类别对应的层级、及类别编码的编码长度;
根据所述目标类别对应的层级,从所述父类别的类别编码中第一个字符开始,选取目标数量的字符,所述目标数量与所述目标类别对应的层级相对应;
将所述目标数量的字符与所述目标类别的层级编码进行拼接,得到拼接编码;
根据所述拼接编码的编码长度与所述类别编码的编码长度,调整所述拼接编码,得到所述目标类别的类别编码。
上述方案中,所述装置还包括:
调整模块,还用于获取所述父类别所包括的至少两个子类别的搜索频次;
根据所述搜索频次,调整所述父类别所包括的至少两个子类别的层级编码的编码顺序。
上述方案中,所述存储模块,还用于存储所述目标类别的类别编码至区块链网络。
本发明实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的类别的编码方法。
本发明实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的类别的编码方法。
本发明实施例具有以下有益效果:
通过根据父类别的类别编码及目标类别的层级编码,生成目标类别的类别编码,由于每个类别的类别编码中包含了该类别的类别层级关系,在搜索与目标类别相关联的类别信息时,可以直接基于类别编码进行搜索,而无需逐层遍历每一层级的类别,如此,能够提高搜索与目标类别相关联的类别信息的搜索效率。
附图说明
图1是本发明实施例提供的类别的编码系统100的一个可选的架构示意图;
图2是本发明实施例提供的电子设备的结构示意图;
图3是本发明实施例提供的类别的编码方法的流程示意图;
图4是本发明实施例提供的多级分类结构的示意图;
图5是本发明实施例提供的区块链网络的应用架构示意图;
图6是本发明实施例提供的区块链网络900中区块链的结构示意图;
图7是本发明实施例提供的区块链网络900的功能架构示意图;
图8是本发明实施例提供的类别的编码方法的流程示意图;
图9是本发明实施例提供的类别编码的示意图;
图10是本发明实施例提供的类别的编码方法的流程示意图;
图11是本发明实施例提供的类别编码的示意图;
图12是本发明实施例提供的类别的编码方法的流程示意图;
图13是本发明实施例提供的类别的编码装置的组成结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)类别层级关系,包括上下级关系、同级关系等:如,目标类别属于哪个父类别,目标类别包括哪些子类别,目标类别与哪些类别同属于同一父类别等。
2)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
3)分类树,由分类和其子分类构成的一棵逻辑上的树形结构。
4)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
5)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
6)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
7)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
8)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
9)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
10)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
相关技术中,提供一种基于分类树的多级分类结构的描述方法,也即为每个类别随机生成一个ID,dentity document,每个类别用(ID,父类别ID)来描述,需要说明的是,物品对应的描述中至少包括其所属的父类别ID。在需要搜索属于某个类别的物品时,需要进行逐层遍历,即先获取该类别所有的子类别,再获取属于这些子类别的物品。由于需要对分类树进行多轮遍历,导致搜索效率低。
相关技术中,还提供一种基于分类树的多级分类结构的描述方法,存储对应每个物品的完整的分类链,如分类树为4层,则每个物品对应四个分类字段,分别保存其所属类别的第一层到第四层的分类ID。虽然解决了需要对分类树进行多轮遍历的问题,但增加了存储成本,且存储不灵活。
基于此,提出本发明实施例的类别的编码方法及装置,以至少解决相关技术中的上述问题,接下来分别进行说明。
参见图1,图1是本发明实施例提供的类别的编码系统100的一个可选的架构示意图,为实现支撑一个示例性应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
服务器200,用于获取目标类别所对应的类别层级关系;根据类别层级关系,确定目标类别所属的父类别及父类别所包括的至少两个子类别;获取父类别的类别编码、及至少两个子类别的类别编码状态;根据至少两个子类别的类别编码状态,为目标类别分配层级编码;根据父类别的类别编码及目标类别的层级编码,生成目标类别的类别编码;存储目标类别的类别编码;
终端(如终端400-1),用于发送针对目标类别的搜索请求给服务器200;
服务器200,用于响应于搜索请求,根据目标类别的类别编码,搜索与目标类别相关联的类别信息。
在实际应用中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
接下来对实施本发明实施例的类别的编码方法的电子设备进行说明。在一些实施例中,电子设备可以为终端,还可以为服务器。参见图2,图2是本发明实施例提供的电子设备的结构示意图,图2所示的电子设备包括:处理器410、存储器450、网络接口420和用户接口430。电子设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的类别的编码装置可以采用软件方式实现,图2示出了存储在存储器450中的类别的编码装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4551、确定模块4552、第二获取模块4553、第一编码模块4554、第二编码模块4555及存储模块4556,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的类别的编码装置可以采用硬件方式实现,作为示例,本发明实施例提供的类别的编码装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的类别的编码方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
将结合本发明实施例提供的电子设备的示例性应用和实施,说明本发明实施例提供的类别的编码方法,该类别的编码方法由终端实现。
参见图3,图3是本发明实施例提供的类别的编码方法的流程示意图,将结合图3示出的步骤进行说明。
步骤301:终端获取目标类别所对应的类别层级关系。
需要说明的是,多级分类结构是预先设置好的,终端可以直接根据多级分类结构来确定目标类别所对应的类别层级关系。这里,类别层级关系包括上下级关系、同级关系等:如,目标类别属于哪个父类别,目标类别包括哪些子类别,目标类别与哪些类别同属于同一父类别等。
例如,图4为本发明实施例提供的多级分类结构的示意图,参见图4,该多级分类结构包括四级类别,当目标类别为汽车时,可以获取汽车的层级关系,也即汽车的父类为制造,汽车的子类别为轿车和SUV,与汽车同属于制造的类别为钢铁。
步骤302:根据类别层级关系,确定目标类别所属的父类别及父类别所包括的至少两个子类别。
步骤303:获取父类别的类别编码、及至少两个子类别的类别编码状态。
这里,类别编码状态用于描述某一类别是否已经被编码,也即是否存在对应该类别的类别编码,包括已编码状态和未编码状态。
在实际实施时,父类别为已编码状态时,终端直接获取父类别的类别编码;父类别为未编码状态时,终端先对父类别进行编码,以获取父类别的类别编码。需要说明的是,父类别的编码方式与目标类别的编码方式相同。
步骤304:根据至少两个子类别的类别编码状态,为目标类别分配层级编码。
这里,同一个父类别包括的多个子类别的层级编码应该是互不相同,需要根据父类别包括的所有子类别的类别编码状态,来为目标类别分配层级编码,以使目标类别的层级编码可以不同于已编码状态的子类别的层级编码。
需要说明的是,目标类别的层级编码可以为任意字符,其中,字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。
在一些实施例中,终端可以通过以下方式为目标类别分配层级编码:根据父类别所包括的至少两个子类别的类别编码状态,确定至少一个子类别的类别编码状态为已编码状态时,获取已编码状态的至少一个子类别的类别编码;从已编码状态的至少一个子类别的类别编码中,提取所述子类别的层级编码;根据所述子类别的层级编码,生成所述目标类别的层级编码。
在实际实施时,当父类别包括的多个子类别中存在已编码状态的子类别时,根据已编码状态的子类别的层级编码,生成目标类别的层级编码,其中,生成的目标类别的层级编码与已编码状态的子类别的层级编码不同。
在实际应用中,终端可以根据已编码状态的子类别的层级编码,顺序生成目标类别的层级编码,例如,存在两个已编码状态的子类别,其层级编码分别为01、02,那么,顺序生成目标类别的层级编码03;又如存在两个已编码状态的子类别,其层级编码分别为A、B,那么,顺序生成目标类别的层级编码C。
在实际应用中,终端还可以随机生成目标类别的层级编码,然后比较目标类别的层级编码和已编码状态的子类别的层级编码,当目标类别的层级编码与已编码状态的子类别的层级编码相同时,重新生成目标类别的层级编码;若不同,则执行下一步的操作。
例如,存在两个已编码状态的子类别,其层级编码分别为A、B,随机生成目标类别的层级编码为A,由于已经有一个子类别的层级编码为A,那么,因此需要重新生成目标类别的层级编码,若生成的目标类别的层级编码为D,则不需要重新生成了。
在一些实施例中,终端可以通过终端可以根据至少两个子类别的类别编码状态,获取已编码状态的子类别的数量,以基于已编码状态的子类别的数量,为目标类别分配层级编码,也即根据各子类别的编码顺序来分配层级编码,如已编码状态的子类别的数量为1,那么,目标类别为第二个被编码的子类别,为其分配与编码顺序中第二位相匹配的基层编码。
在一些实施例中,当父类别包括的至少两个子类别的类别编码状态均为未编码状态时,可以按照编码顺序为目标类别分配层级编码,也可以直接为其随机生成层级编码,而无需考虑其它子类别。
步骤305:根据父类别的类别编码及目标类别的层级编码,生成所述目标类别的类别编码。
需要说明的是,由于目标类别的类别编码是根据父类别的类别编码和目标类别的层级编码生成的,可以直接根据目标类别的类别编码确定其父类别。同时,由于父类别的生成方式是与目标类别相同的,进而可以根据父类别的类别编码确定父类别的父类别。也就是说,目标类别的类别编码中实际包含有目标类别的完整的类别层级关系。如此,能够提高搜索与目标类别相关联的类别信息的搜索效率。
在一些实施例中,终端会虚构一个根类别作为一级类别的父类别,并为其预设一个类别编码。当目标类别为一级类别时,根据根类别的类别编码和自身的层级编码确定其类别编码。在另一些实施例中,可以不为根类别预设类别编码,也即根类别的类别编码为空,那么,一级类别的类别编码实际仅根据其自身的层级编码确定。这里,通过虚构一个根类别,能够简化一级类别的类别编码的生成过程,提高类别编码的生成效率。
在一些实施例中,终端可以通过以下方式得到目标类别的类别编码:将父类别的类别编码与目标类别的层级编码进行拼接,得到目标类别的类别编码。
这里,目标类别的类别编码是直接将父类别的类别编码与目标类别的层级编码进行拼接得到的,每一层级的类别编码的长度是不同的,也即,类别的层级越低,则类别编码的长度越长。
例如,目标类别的父类别的类别编码为A,目标类别的层级编码为B,那么目标类别的类别编码为AB;假设目标类别的某一子类别的层级编码为C,那么该子类别的类别编码为ABC。
在一些实施例中,终端可以通过以下方式得到目标类别的类别编码:获取目标类别对应的层级、及类别编码的编码长度;根据目标类别对应的层级,从父类别的类别编码中第一个字符开始,选取目标数量的字符,目标数量与目标类别对应的层级相对应;将目标数量的字符与目标类别的层级编码进行拼接,得到拼接编码;根据拼接编码的编码长度与类别编码的编码长度,调整所述拼接编码,得到目标类别的类别编码。
需要说明的是,类别编码的编码长度是根据总类别层级以及每个层级所对应的层级编码的字符数确定的,以保证每个层级的类别的类别编码的编码长度是相同的,同时保证类别编码中所包含信息的完整性。其中,每个层级所对应的层级编码的字符数可以是相同的,也可以是不同的,如可以使每个层级所对应的层级编码的字符数为2;也可以是第一层级所对应的层级编码的字符数为2、第二层级所对应的层级编码的字符数为4。
例如,每个层级的层级编码的字符数为2个,目标类别对应的层级为三级,其父类别的层级为二级,假设父类别的类别编码为02010000,那么选取前四个字符,即0201,假设目标类别的层级编码为03,那么,将0201与03进行拼接得到020103。由于类别编码的编码长度与最大层级是相对应的,若最大层级为3,那么类别编码长度为6,此时,拼接编码的编码长度也为6,无需调节拼接编码,直接将该拼接编码作为目标类别的类别编码;若最大层级为4,那么类别编码的编码长度为8,此时,而拼接编码的编码长度为6,需要调节拼接编码,以得到编码长度为8的类别编码,调整拼接编码的方式可以是在拼接编码后增加无意义的字符,如可以添加若干个0,是编码长度为8,也即在020103后添加2个0,得到目标类别的类别编码为02010300。
在实际实施时,终端会虚构一个根类别作为一级类别的父类别,并为其预设一个类别编码,但根类别的类别编码并不包括有意义信息,因此,当目标类别对应的层级为一级时,目标数量可以为0。例如,根类别的类别编码为00000000,可以选取根类别的类别编码的前0个字符,假设目标类别的层级编码为01,那么,目标类别的类别编码为01000000。
步骤306:存储目标类别的类别编码。
这里,类别编码用于供搜索与目标类别相关联的类别信息。
在一些实施例中,终端可以通过以下方式搜索与目标类别相关联的类别信息:终端响应于针对目标类别的第一搜索请求,获取目标类别的类别编码;分别将各物品的类别编码与目标类别的类别编码进行匹配,得到归属于目标类别的物品;呈现归属于目标类别的物品所对应的物品信息。
在实际实施时,用户可以通过终端输入目标类别所对应的关键词,以触发针对目标类别的第一搜索请求;或者,用户也可以通过终端输入目标类别所对应的图片,以触发针对目标类别的搜索请求。终端根据第一搜索请求中所携带的关键词或图片,确定所要搜索的目标类别,进而查找目标类别的类别编码,以将数据库中各物品的类别编码与目标类别的类别编码进行匹配。
在一些实施例中,终端可以通过字符匹配的方式来得到归属于目标类别的物品,也即判断物品的类别编码是否包括目标类别的类别编码的部分或全部字符。
当目标类别的类别编码通过将父类别的类别编码与目标类别的层级编码进行拼接得到时,判断物品的类别编码是否以目标类别的类别编码开头,例如,目标类别的编码为AB,那么判断物品的类别编码是否是以AB开头的,比如物品的类别编码为ABC,是以AB开头的,则该物品是归属于目标类别的物品。
当目标类别的类别编码是将父类别的类别编码中目标数量的字符与目标类别的层级编码进行拼接,得到拼接编码后,根据类别编码的编码长度,调整拼接编码得到时,判断物品的类别编码是否以拼接编码开头,例如,目标类别的类别编码是02010000,拼接编码是0201,那么判断物品的类别编码是否以0201开头,若是,则该物品是归属于目标类别的物品。
在一些实施例中,终端可以通过数值比较的方式来得到归属于目标类别的物品:当类别编码为数值类型时,根据目标类别的类别编码,确定目标类别的编码区间;分别将各物品的类别编码与编码区间进行数值比较,将类别编码处于编码区间内的物品确定为归属于目标类别的物品。
在实际实施时,当类别编码为数值类型时,可以基于数值的比较来得到归属于目标类别的物品,如此,相对于字符串的匹配,基于数值的比较,搜索效率更高。
示例性地,当各类别编码的长度为等长时,直接确定目标类别的编码区间,例如,目标类别的类别编码为02010000,其中,02010000为十六进制的数值,那么,确定目标类别的编码区间为(0x02010000,0x0201FFFF),将各物品的类别编码与编码区间(0x02010000,0x0201FFFF)进行比较,类别编码处于(0x02010000,0x0201FFFF)内的物品即为归属于目标类别的物品。
示例性地,当各类别编码的编码长度与层级相关时,根据物品的类别编码的编码长度,来确定类别编码的编码区间,如,目标类别的类别编码为0201,物品的类别编码的编码长度为8位,那么,目标类别的编码区间为(0x02010000,0x0201FFFF),将各物品的类别编码与编码区间(0x02010000,0x0201FFFF)进行比较,类别编码处于(0x02010000,0x0201FFFF)内的物品即为归属于目标类别的物品。
在一些实施例中,终端可以通过以下方式搜索与目标类别相关联的类别信息:响应于针对目标类别的第二搜索请求,获取目标类别的类别编码;从类别编码中,确定所述目标类别的父类别的类别编码;根据目标类别的父类别的类别编码,确定目标类别所属的父类别;获取并呈现归属于父类别的至少两个子类别的类别信息。
这里,由于目标类别的类别编码是根据其父类别的类别编码和其自身的层级编码生成的,因此,可以根据目标类别的类别编码,获取目标类别的父类别的类别编码。
需要说明的是,在实际实施时,还可以进一步根据获取到的目标类别的父类别的类别编码,得到父类别的父类别的编码,进而获取并呈现归属于父类别的父类别的子类别的类别信息。
在实际实施时,当目标类别的类别编码通过将父类别的类别编码与目标类别的层级编码进行拼接得到时,终端从目标类别的类别编码截取父类别的类别编码。例如,目标类别的类别编码为ABC,其父类别的类别编码为AB,其父类别的父类别的类别编码为A。
在实际实施时,当目标类别的类别编码是将父类别的类别编码中目标数量的字符与目标类别的层级编码进行拼接,得到拼接编码后,根据类别编码的编码长度,调整拼接编码得到时,终端从目标类别的层级编码的第一个字符开始,提取目标数量的字符,然后根据类别编码的编码长度,确定父类别的类别编码。例如,目标类别的类别编码为02010100,其父类别的类别编码为02010000,其父类别的父类别的类别编码为02000000。
在一些实施例中,终端还可以获取父类别所包括的至少两个子类别的搜索频次;根据搜索频次,调整父类别所包括的至少两个子类别的层级编码的编码顺序。
在实际实施时,终端可以根据各类别的搜索频次,调整同一父类别的层级编码的编码顺序,提高搜索效率。例如,参见图4,轿车包括紧凑型车、小型车、中型车、大型车,紧凑型车的类别编码为02010101,小型车的类别编码为02010102,中型车的类别编码为02010103,大型车的类别编码为02010104,当中型车的搜索频次高于小型车时,可以调整中型车和小型车的层级编码的编码顺序,也即中型车的类别编码为02010102,小型车的类别编码为02010103。
在一些实施例中,终端在生成目标类别的类别编码之后,还可以结合区块链技术,将目标类别的类别编码存储至区块链网络,以在搜索与目标类别相关联的类别信息时,能够直接从区块链网络获取到目标类别的类别编码。
这里,生成目标类别的类别编码后,生成用于存储目标类别的类别编码的交易,提交生成的所述交易至区块链网络的节点,以使所述节点对交易共识后存储对应目标类别的类别编码至区块链网络;在存储至区块链网络之前,终端还可获取目标类别的类别编码对应的目标类别的类别编码的摘要信息;将得到的目标类别的类别编码的摘要信息存储至区块链网络。
参见图5,图5为本发明实施例提供的区块链网络的应用架构示意图,包括业务主体500、认证中心800,区块链网络900(示例性示出了共识节点910-1至共识节点910-3),下面分别说明。
区块链网络900的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和终端,都可以在不需要授权的情况下接入区块链网络900;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/终端)可以接入区块链网络900,此时,成为区块链网络900中的一类特殊的节点即客户端节点。
在一些实施例中,客户端节点可以只作为区块链网络900的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络900的共识节点910的功能,例如排序功能、共识服务和账本功能等,终端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络900中,通过区块链网络900实现数据和业务处理过程的可信和可追溯。
区块链网络900中的共识节点接收来自业务主体500的客户端节点提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体的客户端节点中显示。
下面以业务主体接入区块链网络以实现媒体文件的播放为例,说明区块链网络的示例性应用。
参见图5,类别的编码涉及的业务主体500,从认证中心800进行登记注册获得数字证书,数字证书中包括业务主体的公钥、以及认证中心800对业务主体的公钥和身份信息签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并被发送到区块链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性(即是否未经篡改)和发送消息的业务主体的身份信息,区块链网络会根据身份进行验证,例如是否具有发起交易的权限。业务主体下辖的电子设备(例如终端或者终端)运行的客户端都可以向区块链网络900请求接入而成为客户端节点。
业务主体500的客户端节点用于类别的编码,例如,获取目标类别所对应的类别层级关系;
根据所述类别层级关系,确定目标类别所属的父类别及父类别所包括的至少两个子类别;获取父类别的类别编码、及至少两个子类别的类别编码状态;根据至少两个子类别的类别编码状态,为目标类别分配层级编码;根据父类别的类别编码及目标类别的层级编码,生成目标类别的类别编码;存储目标类别的类别编码至区块链网络。
其中,将密钥发送目标类别的层级编码至区块链网络900的操作,可以预先在客户端节点510设置业务逻辑,当生成目标类别的层级编码时,客户端节点510将目标类别的层级编码自动发送至区块链网络900,也可以由业务主体500的业务人员在客户端节点510中登录,手动打包目标类别的层级编码,并将其发送至区块链网络900。在发送时,客户端节点510根据对应密钥生成对应存储操作的交易,在交易中指定了实现存储操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了服客户端节点510的数字证书、签署的数字签名(例如,使用客户端节点510的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络900中的共识节点910。
区块链网络900中的共识节点910中接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体500的身份,确认业务主体500是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署节点910自己的数字签名(例如,使用节点910-1的私钥对交易的摘要进行加密得到),并继续在区块链网络900中广播。
区块链网络900中的共识节点910接收到验证成功的交易后,将交易填充到新的区块中,并进行广播。区块链网络900中的共识节点910广播的新区块时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交更新领取记录的交易,在状态数据库中添加领取记录。
作为区块链的示例,参见图6,图6为本发明实施例提供的区块链网络900中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图7,图7为本发明实施例提供的区块链网络900的功能架构示意图,包括应用层901、共识层902、网络层903、数据层904和资源层905,下面分别进行说明。
资源层905封装了实现区块链网路900中的节点的计算资源、存储资源和通信资源。
数据层904封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
网络层903封装了点对点(P2P,Point to Point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络900中节点之间的通信,数据传播机制保证了交易在区块链网络900中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络900的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络900的权限;业务主体身份管理用于存储允许接入区块链网络900的业务主体的身份、以及权限(例如能够发起的交易的类型)。
共识层902封装了区块链网络900中的节点对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括POS、POW和DPOS等共识算法,支持共识算法的可插拔。
交易管理用于验证节点接收到的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络900的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。
账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的终端节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
应用层901封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
本发明实施例,通过根据父类别的类别编码及目标类别的层级编码,生成目标类别的类别编码,由于每个类别的类别编码中包含了该类别的类别层级关系,在搜索与目标类别相关联的类别信息时,可以直接基于类别编码进行搜索,而无需逐层遍历每一层级的类别,如此,能够提高搜索与目标类别相关联的类别信息的搜索效率。
图8为本发明实施例提供的类别的编码方法的流程示意图,参见图8,本发明实施例提供的类别的编码方法包括:
步骤601:服务器获取目标类别所对应的类别层级关系。
需要说明的是,多级分类结构是预先设置好的,终端可以直接根据多级分类结构来确定目标类别所对应的类别层级关系。
步骤602:服务器根据类别层级关系,确定目标类别所属的父类别及父类别所包括的至少两个子类别。
步骤603:服务器获取父类别的类别编码、及至少两个子类别的类别编码状态。
这里,类别编码状态用于描述某一类别是否已经被编码,也即是否存在对应该类别的类别编码,包括已编码状态和未编码状态。
步骤604:服务器根据至少两个子类别的类别编码状态,确定已编码状态的子类别的数量。
步骤605:服务器根据已编码状态的子类别的数量,为目标类别分配层级编码。
如,已编码状态的子类别的数量为1,那么,目标类别为第二个被编码的子类别,为其分配与编码顺序中第二位相匹配的基层编码。
步骤606:服务器获取目标类别对应的层级、及类别编码的编码长度。
步骤607:服务器根据目标类别对应的层级,从父类别的类别编码中第一个字符开始,选取目标数量的字符。
例如,每个层级的层级编码的字符数为2个,目标类别对应的层级为三级,其父类别的层级为二级,假设父类别的类别编码为02010000,那么选取前四个字符,即0201。
步骤608:服务器将目标数量的字符与目标类别的层级编码进行拼接,得到拼接编码。
例如,目标数量的字符为0201,目标类别的层级编码为03,将0201与03进行拼接得到020103。
步骤609:服务器根据拼接编码的编码长度与类别编码的编码长度,调整所述拼接编码,得到目标类别的类别编码。
例如,类别编码的编码长度为8,拼接编码的编码长度为6,那么在拼接编码后添加2个0。
图9为本发明实施例提供的类别编码的示意图,参见图9,对于每一个类别的类别编码,其前(L-1)*2个字符与其父类别的前(L-1)*2个字符是相同的,第(L-1)*2和L*2个字符是该类别的层级编码。需要说明的是,2表示层级编码的长度为2个字符,L表示该类别的层级。
步骤610:服务器存储目标类别的类别编码。
步骤611:客户端发送针对目标类别的搜索请求。
步骤612:服务器响应于针对目标类别的搜索请求,获取目标类别的类别编码。
步骤613:服务器根据目标类别的类别编码,确定目标类别的编码区间。
例如,目标类别的类别编码为02010000,其中,02010000为十六进制的数值,那么,确定目标类别的编码区间为(0x02010000,0x0201FFFF)。
步骤614:服务器分别将各物品的类别编码与编码区间进行数值比较,将类别编码处于编码区间内的物品确定为归属于目标类别的物品。
步骤615:服务器将归属于目标类别的物品所对应的物品信息返回给客户端。
步骤616:终端呈现归属于目标类别的物品所对应的物品信息。
图10为本发明实施例提供的类别的编码方法的流程示意图,参见图10,本发明实施例提供的类别的编码方法包括:
步骤701:服务器获取目标类别所对应的类别层级关系。
需要说明的是,多级分类结构是预先设置好的,终端可以直接根据多级分类结构来确定目标类别所对应的类别层级关系。
步骤702:服务器根据类别层级关系,确定目标类别所属的父类别及父类别所包括的至少两个子类别。
步骤703:服务器获取父类别的类别编码、及至少两个子类别的类别编码状态。
这里,类别编码状态用于描述某一类别是否已经被编码,也即是否存在对应该类别的类别编码,包括已编码状态和未编码状态。
步骤704:服务器根据至少两个子类别的类别编码状态,确定至少一个子类别的类别编码状态为已编码状态时,获取已编码状态的至少一个子类别的类别编码。
步骤705:服务器从所述已编码状态的至少一个子类别的类别编码中,提取子类别的层级编码。
步骤706:服务器根据子类别的层级编码,顺序生成目标类别的层级编码。
例如,存在两个已编码状态的子类别,其层级编码分别为01、02,那么,顺序生成目标类别的层级编码03;又如存在两个已编码状态的子类别,其层级编码分别为A、B,那么,顺序生成目标类别的层级编码C。
步骤707:服务器将父类别的类别编码与目标类别的层级编码进行拼接,得到目标类别的类别编码。
例如,目标类别的父类别的类别编码为A,目标类别的层级编码为B,那么目标类别的类别编码为AB;假设目标类别的某一子类别的层级编码为C,那么该子类别的类别编码为ABC。
图11为本发明实施例提供的类别编码的示意图,参见图11,对于每一个类别的类别编码,均是由其父类别的类别编码和其自身的层级编码拼接得到的。
步骤708:服务器存储目标类别的类别编码。
步骤709:客户端发送针对目标类别的搜索请求。
步骤710:服务器响应于针对目标类别的搜索请求,获取目标类别的类别编码。
步骤711:服务器从目标类别的类别编码,提取目标类别的父类别的类别编码。
例如,目标类别的类别编码为AB,那么目标类别的父类别的类别编码为A。
步骤712:服务器根据目标类别的父类别的类别编码,确定目标类别所属的父类别。
步骤713:服务器获取并返回归属于父类别的至少两个子类别的类别信息。
步骤714:终端呈现归属于父类别的至少两个子类别的类别信息。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。本发明实施例的核心是一种基于数值位分割的类别的编码方法,其中,数值是指类别编码的值,位分割是指将类别的编码方法的值按照二级制位进行分割。类别的编码方法分割成多段之后,自高位至低位,每段代表分类的一个层级。对于一个最大层级为N的分类,我们采用每8位(即1个字节)一分割,则类别的编码方法为N个字节的数值,该数值每个字节代表一个层级。
图12为本发明实施例提供的类别的编码方法的流程示意图,参见图12,本发明实施例提供的类别的编码方法包括:
步骤801:获取目标类别的类别编码的字节数。
这里,类别编码的字节数与多级分类结构的最大层级数相同,例如,参见图4,最大层级为4,那么类别编码的字节数为4,需要说明的是,1个字节包括8位二进制数。
在实际实施时,在执行步骤801之前,需要虚构一个根类别,并为其预设一个类别编码,例如,可以将如图4所示的根类别的类别编码预置为0x00000000(十六进制)。
其中,根类别可以理解为第0层的类别,整个分类树中只有1个,业务中一级类别作为根类别的子类别形式存在。如果在分类树中只有一个根类别,没有其它类别,说明这是一个空的分类树,还没有添加任何的类别数据。
步骤802:判断目标类别是否为根类别,若是,执行步骤803;否则,执行步骤804。
步骤803:确定目标类别的类别编码为预置的根类别的类别编码。
如,将如图4所示的根类别的类别编码预置为0x000000,目标类别的类别编码为0x000000。
步骤804:确定目标类别的层级为L(L>0)。
步骤805:根据目标类别的父类别的类别编码的高(L-1)个字节,确定目标类别的类别编码的高(L-1)个字节。
这里,目标类别的类别编码的高L-1个字节与其父类别的类别编码的高L-1个字节是相同的。需要说明的是,当目标类别为一级类别时,其最高的0个字节与父分类相同,可忽略。
步骤806:根据父类别包括的多个子类别的类别编码状态,为目标类别顺序分配类别编码的第L个字节(层级编码)。
这里,目标类别的类别编码的第L个字节与父类别包括的多个子类别的类别编码状态是相关的,若父类别包括的多个子类别均为未编码状态,那么,目标类别的类别编码的第L个字节为01;若父类别包括的多个子类别存在已编码状态的子类别时,可以根据已编码状态的子类别的数量,确定目标类别是第几个被编码的,仅为其分配第L个字节的数值。
例如,参见图9,设计、制造、监测的类别编码的第L个字节分别为01、02、03,也即第L个字节是从01开始顺序分配的。可以理解的是,在目标类别为制造时,其是第二个被编码的子类别,因此,其第L个字节为02。
又如,大型车作为轿车的子类别,位于第四层级,其高3个字节与其父分类相同,即为0x020101,第4个字节由递增分配,由于已分配至03,所以分配04,故最终大型车类别的类别编码为0x02010104。
步骤807:目标类别的类别编码的第L个字节后几个字节置为0。
这里,当L不为最大层级时,将目标类别的类别编码的第L个字节后几个字节置为0;当L为最大层级时,将目标类别的类别编码的第L个字节后没有剩余字节。
例如,参见图9,一级类别的类别编码分别为0x01000000、0x02000000、0x03000000,其中,01、02、03是顺序分配得到的,后面3个字节置为0。四级类别的类别编码分别为0x02010101、0x02010102、0x02010103、0x02010104,第L个字节后没有剩余字节。
应用本发明上述实施例具有以下有益效果:
1)通过类别编码可以直接追溯该类别的完整层级关系。参见图9,加入某个物品的类别编码为0x02010101,有类别编码可以直接获知其是属于制造类别(0x02000000)下的汽车类别(0x02010000)下的轿车类别(0x02010100)下的紧凑型车类别(0x02010101)。
2)支持包含子类别的分类搜索,并且完全基于数值的比较,搜索效率极高。如图1所示,如果要物品库中所有的汽车,无需查找分类树来获取其所有子分类以及子分类的子分类,而是可以直接遍历物品库,搜索类别编码在(0x02010000,0x0201FFFF)之间的所有物品。由于类别编码是纯数值类型,在数据库操作中更加快速高效。
在一些实施例中,可采用多级字符串结构来表示类别编码,即ABC的形式,其中AB是该类别的父类别的类别编码,在需要进行包含子分类的搜索时,如查找类别AB及其所有子类别下的所有物品,可以直接遍历物品库,搜索类别编码以AB开头的所有物品即可,如此,能够避免了对分类树的多轮遍历获取子类别的过程,提高了搜索效率。
下面继续说明本发明实施例提供的类别的编码装置455的实施为软件模块的示例性结构,图13是本发明实施例提供的类别的编码装置的组成结构示意图,参见图13,在一些实施例中,本发明实施例提供的类别的编码装置包括:
第一获取模块4551,用于获取目标类别所对应的类别层级关系;
确定模块4552,用于根据所述类别层级关系,确定所述目标类别所属的父类别及所述父类别所包括的至少两个子类别;
第二获取模块4553,用于获取所述父类别的类别编码、及所述至少两个子类别的类别编码状态;
第一编码模块4554,用于根据所述至少两个子类别的类别编码状态,为所述目标类别分配层级编码;
第二编码模块4555,用于根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码;
存储模块4556,用于存储所述目标类别的类别编码,所述类别编码用于供搜索与所述目标类别相关联的类别信息。
在一些实施例中,所述装置还包括:
第一搜索模块,用于响应于针对所述目标类别的第一搜索请求,获取所述目标类别的类别编码;
分别将各物品的类别编码与所述目标类别的类别编码进行匹配,得到归属于所述目标类别的物品;
呈现所述归属于所述目标类别的物品所对应的物品信息。
在一些实施例中,所述第一搜索模块,用于当类别编码为数值类型时,根据所述目标类别的类别编码,确定所述目标类别的编码区间;
分别将各物品的类别编码与所述编码区间进行数值比较,将类别编码处于所述编码区间内的物品确定为归属于所述目标类别的物品。
在一些实施例中,所述装置还包括:
第二搜索模块,用于响应于针对所述目标类别的第二搜索请求,获取所述目标类别的类别编码;
从所述类别编码中,确定所述目标类别的父类别的类别编码;
根据所述目标类别的父类别的类别编码,确定所述目标类别所属的父类别;
获取并呈现归属于所述父类别的至少两个子类别的类别信息。
在一些实施例中,所述第一编码模块4554,还用于根据所述父类别所包括的至少两个子类别的类别编码状态,确定至少一个子类别的类别编码状态为已编码状态时,获取已编码状态的至少一个子类别的类别编码;
从所述已编码状态的至少一个子类别的类别编码中,提取所述子类别的层级编码;
根据所述子类别的层级编码,生成所述目标类别的层级编码。
在一些实施例中,所述第二编码模块4555,还用于将所述父类别的类别编码与所述目标类别的层级编码进行拼接,得到所述目标类别的类别编码。
在一些实施例中,所述第二编码模块4555,还用于获取所述目标类别对应的层级、及类别编码的编码长度;
根据所述目标类别对应的层级,从所述父类别的类别编码中第一个字符开始,选取目标数量的字符,所述目标数量与所述目标类别对应的层级相对应;
将所述目标数量的字符与所述目标类别的层级编码进行拼接,得到拼接编码;
根据所述拼接编码的编码长度与所述类别编码的编码长度,调整所述拼接编码,得到所述目标类别的类别编码。
在一些实施例中,所述装置还包括:
调整模块,还用于获取所述父类别所包括的至少两个子类别的搜索频次;
根据所述搜索频次,调整所述父类别所包括的至少两个子类别的层级编码的编码顺序。
在一些实施例中,所述存储模块4556,还用于存储所述目标类别的类别编码至区块链网络。
本发明实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的方法,例如,如图3示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (10)

1.一种类别的编码方法,其特征在于,所述方法包括:
获取目标类别所对应的类别层级关系;
根据所述类别层级关系,确定所述目标类别所属的父类别及所述父类别所包括的至少两个子类别;
获取所述父类别的类别编码、及所述至少两个子类别的类别编码状态;
根据所述至少两个子类别的类别编码状态,为所述目标类别分配层级编码;
根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码;其中,所述根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码,包括:获取所述目标类别对应的层级、及类别编码的编码长度;根据所述目标类别对应的层级,从所述父类别的类别编码中第一个字符开始,选取目标数量的字符,所述目标数量与所述目标类别对应的层级相对应;将所述目标数量的字符与所述目标类别的层级编码进行拼接,得到拼接编码;根据所述拼接编码的编码长度与所述类别编码的编码长度,调整所述拼接编码,得到所述目标类别的类别编码;所述类别编码的编码长度是根据总类别层级以及每个层级所对应的层级编码的字符数确定的;
存储所述目标类别的类别编码,所述类别编码用于供搜索与所述目标类别相关联的类别信息;
获取所述父类别所包括的至少两个子类别的搜索频次;根据所述搜索频次,调整所述父类别所包括的至少两个子类别的层级编码的编码顺序。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于针对所述目标类别的第一搜索请求,获取所述目标类别的类别编码;
分别将各物品的类别编码与所述目标类别的类别编码进行匹配,得到归属于所述目标类别的物品;
呈现所述归属于所述目标类别的物品所对应的物品信息。
3.如权利要求2所述的方法,其特征在于,所述分别将各物品的类别编码与所述目标类别的类别编码进行匹配,得到归属于所述目标类别的物品,包括:
当类别编码为数值类型时,根据所述目标类别的类别编码,确定所述目标类别的编码区间;
分别将各物品的类别编码与所述编码区间进行数值比较,将类别编码处于所述编码区间内的物品确定为归属于所述目标类别的物品。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于针对所述目标类别的第二搜索请求,获取所述目标类别的类别编码;
从所述类别编码中,确定所述目标类别的父类别的类别编码;
根据所述目标类别的父类别的类别编码,确定所述目标类别所属的父类别;
获取并呈现归属于所述父类别的至少两个子类别的类别信息。
5.如权利要求1所述的方法,其特征在于,所述根据所述父类别所包括的至少两个子类别的类别编码状态,为所述目标类别分配层级编码,包括:
根据所述父类别所包括的至少两个子类别的类别编码状态,确定至少一个子类别的类别编码状态为已编码状态时,获取已编码状态的至少一个子类别的类别编码;
从所述已编码状态的至少一个子类别的类别编码中,提取所述子类别的层级编码;
根据所述子类别的层级编码,生成所述目标类别的层级编码。
6.如权利要求1所述的方法,其特征在于,所述根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码,包括:
将所述父类别的类别编码与所述目标类别的层级编码进行拼接,得到所述目标类别的类别编码。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
存储所述目标类别的类别编码至区块链网络。
8.一种类别的编码装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标类别所对应的类别层级关系;
确定模块,用于根据所述类别层级关系,确定所述目标类别所属的父类别及所述父类别所包括的至少两个子类别;
第二获取模块,用于获取所述父类别的类别编码、及所述至少两个子类别的类别编码状态;
第一编码模块,用于根据所述至少两个子类别的类别编码状态,为所述目标类别分配层级编码;
第二编码模块,用于根据所述父类别的类别编码及所述目标类别的层级编码,生成所述目标类别的类别编码;
存储模块,用于存储所述目标类别的类别编码,所述类别编码用于供搜索与所述目标类别相关联的类别信息
所述第二编码模块,具体用于获取所述目标类别对应的层级、及类别编码的编码长度;根据所述目标类别对应的层级,从所述父类别的类别编码中第一个字符开始,选取目标数量的字符,所述目标数量与所述目标类别对应的层级相对应;将所述目标数量的字符与所述目标类别的层级编码进行拼接,得到拼接编码;根据所述拼接编码的编码长度与所述类别编码的编码长度,调整所述拼接编码,得到所述目标类别的类别编码;所述类别编码的编码长度是根据总类别层级以及每个层级所对应的层级编码的字符数确定的
调整模块,用于获取所述父类别所包括的至少两个子类别的搜索频次;根据所述搜索频次,调整所述父类别所包括的至少两个子类别的层级编码的编码顺序。
9.一种用于实现类别的编码的电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令或者计算机程序;
处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现权利要求1至7任一项所述的类别的编码方法。
10.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时,实现权利要求1至7任一项所述的类别的编码方法。
CN202010109043.9A 2020-02-21 2020-02-21 类别的编码方法及装置 Active CN111339193B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010109043.9A CN111339193B (zh) 2020-02-21 2020-02-21 类别的编码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010109043.9A CN111339193B (zh) 2020-02-21 2020-02-21 类别的编码方法及装置

Publications (2)

Publication Number Publication Date
CN111339193A CN111339193A (zh) 2020-06-26
CN111339193B true CN111339193B (zh) 2023-06-27

Family

ID=71185346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010109043.9A Active CN111339193B (zh) 2020-02-21 2020-02-21 类别的编码方法及装置

Country Status (1)

Country Link
CN (1) CN111339193B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113569101B (zh) * 2021-07-28 2024-07-30 上海数慧系统技术有限公司 业务信息处理方法和装置
CN114116703A (zh) * 2021-11-03 2022-03-01 奇安信科技集团股份有限公司 任务检索方法、装置、计算机设备和存储介质
CN117555494B (zh) * 2024-01-12 2024-03-22 南京荧火泰讯信息科技有限公司 一种用于信号处理板的编码管理系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015104451A1 (en) * 2014-01-07 2015-07-16 Nokia Technologies Oy Method and apparatus for video coding and decoding
CN106851295A (zh) * 2011-07-11 2017-06-13 太阳专利托管公司 编码方法及编码装置
CN106878715A (zh) * 2011-06-27 2017-06-20 太阳专利托管公司 编码方法及编码装置
CN109215796A (zh) * 2018-08-14 2019-01-15 平安医疗健康管理股份有限公司 搜索方法、装置、计算机设备和存储介质
CN110781676A (zh) * 2019-09-30 2020-02-11 腾讯科技(深圳)有限公司 一种文本处理方法、装置、系统、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105447123A (zh) * 2009-12-01 2016-03-30 富志杰 一种数据的分类、存储以及查询方法
CN102819536B (zh) * 2011-09-27 2015-08-19 金蝶软件(中国)有限公司 树型数据处理方法及装置
CN103279544A (zh) * 2013-06-05 2013-09-04 中国电子科技集团公司第十五研究所 树型结构数据在关系型数据库中的存储和查询方法及装置
CN110263043A (zh) * 2019-06-24 2019-09-20 苏州睿威博科技有限公司 数据存储方法、数据查询方法、装置及存储介质
CN115019406A (zh) * 2019-11-25 2022-09-06 蚂蚁胜信(上海)信息技术有限公司 身份编码方法及装置、豢养物身份编码方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106878715A (zh) * 2011-06-27 2017-06-20 太阳专利托管公司 编码方法及编码装置
CN106851295A (zh) * 2011-07-11 2017-06-13 太阳专利托管公司 编码方法及编码装置
WO2015104451A1 (en) * 2014-01-07 2015-07-16 Nokia Technologies Oy Method and apparatus for video coding and decoding
CN109215796A (zh) * 2018-08-14 2019-01-15 平安医疗健康管理股份有限公司 搜索方法、装置、计算机设备和存储介质
CN110781676A (zh) * 2019-09-30 2020-02-11 腾讯科技(深圳)有限公司 一种文本处理方法、装置、系统、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
图书类别的多层表示学习;施航海;王琰;罗鹏杰;;图书馆论坛;第38卷(第08期);129-134 *

Also Published As

Publication number Publication date
CN111339193A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
JP7222036B2 (ja) モデルトレーニングシステムおよび方法および記憶媒体
US20240184775A1 (en) Blockchain database management system
CN110543545B (zh) 基于区块链的档案管理方法、装置及存储介质
US9171174B2 (en) Methods, systems, and computer program products for verifying user data access policies when server and/or user are not trusted
CN111339193B (zh) 类别的编码方法及装置
US20210126977A1 (en) Single Agent for Logs, Metrics, Traces, Synthetics, Security, and End Point Monitoring
US9015494B2 (en) Methods and apparatus for digital steganography
CN105302920A (zh) 一种云存储数据的优化管理方法和系统
CN113779444A (zh) 接口开发方法、零代码引擎和零代码数据接口开发系统
WO2022095518A1 (zh) 接口自动化测试方法、装置、计算机设备及存储介质
US11928605B2 (en) Techniques for cyber-attack event log fabrication
CN112363997B (zh) 数据版本管理方法、装置及存储介质
CN111475582B (zh) 终端设备及用于接入区块链的文物信息处理方法
CN113961600A (zh) 一种数据查询方法、装置、计算机设备及存储介质
US11409724B2 (en) Hashed balanced tree data structure
US20210034574A1 (en) Systems and methods for verifying performance of a modification request in a database system
US11567856B2 (en) Secured code assignment and review engine
CN110502888A (zh) 一种基于可信度量的移动软件白名单机制的移动办公方法
HK40024722B (zh) 類別的編碼方法及裝置
CN113364821B (zh) 一种功能服务访问方法、设备及存储介质
CN104796478A (zh) 一种资源推荐方法及装置
HK40024722A (zh) 類別的編碼方法及裝置
CN117333175A (zh) 区块链系统、智能合约同步方法、计算机设备及存储介质
CN114579398A (zh) 一种日志的存储方法、装置、设备及存储介质
CN112149173A (zh) 一种信息过滤的方法、计算节点及相关设备

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024722

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant