CN112948447A - 一种基于网状结构的用户信息高效检索方法 - Google Patents
一种基于网状结构的用户信息高效检索方法 Download PDFInfo
- Publication number
- CN112948447A CN112948447A CN202011587721.9A CN202011587721A CN112948447A CN 112948447 A CN112948447 A CN 112948447A CN 202011587721 A CN202011587721 A CN 202011587721A CN 112948447 A CN112948447 A CN 112948447A
- Authority
- CN
- China
- Prior art keywords
- taking
- user
- data
- model
- commodity
- 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 11
- 238000000605 extraction Methods 0.000 claims abstract description 12
- 238000001914 filtration Methods 0.000 claims abstract description 4
- 238000012163 sequencing technique Methods 0.000 claims abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 6
- 238000013499 data model Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 102100036378 T-cell immunomodulatory protein Human genes 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000013065 commercial product Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
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/2457—Query processing with adaptation to user needs
-
- 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/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于网状结构的用户信息高效检索方法:将用户和每一级接收到的商品做为节点;将商品与用户的归属关系作为边,将商品在不同层级上的联系也作为边;上述模型存储到GDB中;定义数据定义的XML模型,包含需要作为检索条件的字段,字段需要包含所属的表信息,以及多个表之间的join规则;将自定义的XML模型定义转换成ES的数据源提取模型,通过mysql的binlog同步到异步队列再写入ES;提供接口封装,将关系链的检索通过到GDB中实现获取到查询到集合A,将需要作为排序及过滤的非关系链数据作为检索条件,到ES中查询获取集合B;将A和B的交集作为查询接口返回的ID集合结果。本发明具有查询效率高,***复杂度低,数据复用率高和维护成本低的优点。
Description
技术领域
本发明涉及数据检索技术领域,具体为一种基于网状结构的用户信息高效检索方法。
背景技术
数据检索:即把数据库中存储的数据根据用户的需求提取出来。数据检索的结果会生成一个数据表,既可以放回数据库,也可以作为进一步处理的对象,数据检索包括数据排序和数据筛选两项操作。
DBproxy:数据库代理,前端应用与后端数据库之间的中间件,它使得应用程序员无需再关心读写分离、分表等与MySQL相关的细节,可以专注于编写业务逻辑,同时使得DBA的运维工作对前端应用透明,上下线DB前端应用无感知;
GDB:全称Graph Database,也就是图数据库;并非指存储图片的数据库,而是以图这种数据结构存储和查询数据,是一种在线数据库管理***,具有处理图形数据模型的创建,读取,更新和删除(CRUD)操作,与其他数据库不同,关系在图数据库中占首要地位,应用程序不必使用外键或带外处理来推断数据连接;
Node:节点是图数据库中的主要的数据元素,节点通过关系连接到其他节点,节点可以具有一个或多个属性(即存储为键/值对的属性);
Edge:边也可以叫做关系,关系连接两个节点,关系是方向性的,节点可以有多个甚至递归的关系,关系可以有一个或多个属性(即存储为键/值对的属性);
XML:可扩展标记语言,XML的宗旨传输数据的,而与其同属标准通用标记语言的HTML主要用于显示数据;XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果;
ES:全称Elasticsearch,是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口;Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布。
事例一:在SaaS行业中普遍存在的B2B交易模式中,有如下实例:
step1:平台中的用户A上架了一款商品M,价格10元。
step2:商品M被平台中的用户B看中加价2元,然后分销给了用户C。
step3:用户C将商品M继续加价格3元分销给用户D。
step4:依此循环,商品M分别经过了:A->B->C->D->E,中间经过了5次的价格变动,最终卖给了E。
step5:用户B查询自己分销用户A所有商品的产生订单列表,同时按照商品的类型做排序。
1.以上交易流程是在E发生实际购买的动作时候才会产生A->B->C->D->E的连续交易动作(链条上的用户对M商品非提前采购)。
2.实际场景下发布商品M的用户A的数量是亿级的,所有用户发布的商品总量是百亿级的。
3.用户A上架N款商品会被无数个用户做分销。
事例二:在社交圈行业,基于N度关系的信息推送,如社交软件LinkIn:
step1:社交软件的用户A更新了一条动态信息M。
step2:用户A的朋友用户B立即看到了A更新的信息M。
step3:基于社交的需要,***需要把信息M推送给了用户B的朋友用户C。
step4:依此循环,信息M分别经过了:A->B->C->D->E,最终B/C/D/E做为A对应1/2/3/4度关系,都看到了A更新的信息M。
step5:用户B查看自己每一度关系上的朋友当天都更新了哪些动态的列表,同时按照动态的类型(是否有图片/语音等)做分类和排序。
1.以上信息流程是在A发生更新动态的动作时,才会产生将此次更新的消息推送给B/C/D/E的行为。
2.实际场景下更新动态M的用户A的数量是亿级的,所有用户都有可能会更新动态且更新的信息总量是百亿级的。
将用户和商品(动态)和商品(动态)在每一级的用户分销的关系拆成三个数据模型转换成对应的三张表存储在关系数据库中;在需要检索关联到用户信息or商品信息和商品分销层级信息时,将三张表通过用户id,商品id等字段做为关联key然后join在一起,再加上需要做为检索条件的商品相关字段信息或者用户字段信息做为查询条件。上述方案的查询效率极低,***复杂度高,数据的复用率低和维护成本高。
发明内容
本发明的目的在于提供一种基于网状结构的用户信息高效检索方法,具备查询效率高,***复杂度低,数据复用率高和维护成本低的优点,解决了查询效率极低,***复杂度高,数据的复用率低和维护成本高的问题。
为实现上述目的,本发明提供如下技术方案:一种基于网状结构的用户信息高效检索方法,实现步骤:
S1、将用户和每一级接收到的商品(动态)做为节点(node);
S2、将商品与用户的归属关系作为边(edge),将商品在不同层级上的联系也作为边(edge);
S3、上述S1和S2中的模型存储到GDB中;
S4、定义数据定义的XML模型,包含需要作为检索条件的字段,字段需要包含所属的表信息,以及多个表之间的join规则;
S5、将自定义的XML模型定义转换成ES的数据源提取模型,通过mysql的binlog同步到异步队列再写入ES;
S6、提供接口封装,将关系链的检索通过到GDB中实现获取到查询到集合A,将需要作为排序及过滤的非关系链数据作为检索条件,到ES中查询获取集合B;
S7、将S6中A和B的交集作为查询接口返回的ID集合结果。
与现有技术相比,本发明的有益效果如下:将用户和每一级接收到的商品(动态)做为节点(node);将商品与用户的归属关系作为边(edge),将商品在不同层级上的联系也作为边(edge);上述S1和S2中的模型存储到GDB中;S1、S2和S3实现在GDB中的存储结果;定义数据定义的XML模型,包含需要作为检索条件的字段,字段需要包含所属的表信息,以及多个表之间的join规则;将自定义的XML模型定义转换成ES的数据源提取模型,通过mysql的binlog同步到异步队列再写入ES;提供接口封装,将关系链的检索通过到GDB中实现获取到查询到集合A,将需要作为排序及过滤的非关系链数据作为检索条件,到ES中查询获取集合B;将S6中A和B的交集作为查询接口返回的ID集合结果。上述的检索方法查询效率高,***复杂度低,数据复用率高和维护成本低。
附图说明
图1为本发明的GDB数据存储模型及检索逻辑图;
图2为本发明的检索流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“上”、“下”、“内”、“外”“前端”、“后端”、“两端”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
实施例1
GDB的数据存储及检索模型请参阅图1,矩形和椭圆形对应GDB里的node类型;
红/蓝/黑边:对应GDB里的edge类型;
红色边:红色边连接的商品代表不同层级销售的相同的商品,箭头起点到终点代表商品从上级到下级的加价情况;
黑色边:标记了“属于”,代表当前层级商品所归属的用户;
蓝色边;起点到终点代表当前层级的商品分销给对应的下级用户。
存储引擎GDB:
消费者购买一次商品会产生多个订单;
消费者购买商品M13,销售价格为110元,整个数据模型的遍历过程如下:
S1、从消费者最终购买的商品M13的node作为起点,沿着红色的边逆向箭头方向一直向上遍历,直至红遍所连接的商品不再有箭头指向此商品的红色边;
S2、对S1中获取到的所有商品node,逐个node以自身为起点沿着黑色边的箭头方向找到对应的用户node;
S3、对第一步获取到的所有商品node,逐个node以自身为起点沿着蓝色边的箭头方向找到对应的用户node;
经过以上三步,分别获取到如下的数据信息:
商品之间的上下级关系及加价信息:M6→M13,加价2元;M→M6,加价100元;
每级商品和对应级用户的归属关系:商品M13是用户C1出售的商品;商品M6是用户B2出售的商品;商品M是用户A供应的商品;
商品被用户分销的关系:商品M6被分销给了用户C1和B3;商品M被分销给了用户B1和B2;
S4、将上述得到的三种关系按照商品node关联起来,生成了三笔订单:
X→用户购买用户C1销售的商品M13产生的订单,价格110元;
Y→用户C1购买用户B2销售的商品M6产生的订单,价格100+2=102元=M13的***;
Z→用户B2购买用户A供应的商品M产生的订单,价格100元=M6的***。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (1)
1.一种基于网状结构的用户信息高效检索方法,其特征在于:
S1、将用户和每一级接收到的商品做为节点;
S2、将商品与用户的归属关系作为边,将商品在不同层级上的联系也作为边;
S3、上述S1和S2中的模型存储到GDB中;
S4、定义数据定义的XML模型,包含需要作为检索条件的字段,字段需要包含所属的表信息,以及多个表之间的join规则;
S5、将自定义的XML模型定义转换成ES的数据源提取模型,通过mysql的binlog同步到异步队列再写入ES;
S6、提供接口封装,将关系链的检索通过到GDB中实现获取到查询到集合A,将需要作为排序及过滤的非关系链数据作为检索条件,到ES中查询获取集合B;
S7、将S6中A和B的交集作为查询接口返回的ID集合结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011587721.9A CN112948447A (zh) | 2020-12-28 | 2020-12-28 | 一种基于网状结构的用户信息高效检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011587721.9A CN112948447A (zh) | 2020-12-28 | 2020-12-28 | 一种基于网状结构的用户信息高效检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112948447A true CN112948447A (zh) | 2021-06-11 |
Family
ID=76234951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011587721.9A Pending CN112948447A (zh) | 2020-12-28 | 2020-12-28 | 一种基于网状结构的用户信息高效检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948447A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860998A (zh) * | 2022-06-08 | 2022-08-05 | 中国邮政储蓄银行股份有限公司 | 数据检索的方法、装置、计算机可读存储介质和服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193983A (zh) * | 2011-03-25 | 2011-09-21 | 北京世纪互联工程技术服务有限公司 | 图形数据库基于关系路径的节点数据过滤方法 |
CN104572740A (zh) * | 2013-10-23 | 2015-04-29 | 华为技术有限公司 | 一种存储数据的方法和装置 |
CN108009208A (zh) * | 2017-11-07 | 2018-05-08 | 国网河南省电力公司中牟县供电公司 | 一种变电站监控信息数据的快速读取与分析方法 |
US20180165361A1 (en) * | 2016-12-09 | 2018-06-14 | At&T Intellectual Property I, L.P. | Mapping service and resource abstractions to network inventory graph database nodes and edges |
-
2020
- 2020-12-28 CN CN202011587721.9A patent/CN112948447A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193983A (zh) * | 2011-03-25 | 2011-09-21 | 北京世纪互联工程技术服务有限公司 | 图形数据库基于关系路径的节点数据过滤方法 |
CN104572740A (zh) * | 2013-10-23 | 2015-04-29 | 华为技术有限公司 | 一种存储数据的方法和装置 |
US20180165361A1 (en) * | 2016-12-09 | 2018-06-14 | At&T Intellectual Property I, L.P. | Mapping service and resource abstractions to network inventory graph database nodes and edges |
CN108009208A (zh) * | 2017-11-07 | 2018-05-08 | 国网河南省电力公司中牟县供电公司 | 一种变电站监控信息数据的快速读取与分析方法 |
Non-Patent Citations (1)
Title |
---|
马蜂窝技术: "基于 MySQL Binlog 的 Elasticsearch 数据同步实践", 《CSDN》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860998A (zh) * | 2022-06-08 | 2022-08-05 | 中国邮政储蓄银行股份有限公司 | 数据检索的方法、装置、计算机可读存储介质和服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145121B (zh) | 一种时变图数据的快速存储查询方法 | |
CN107957867B (zh) | 一种电力零售市场模型建模方法及*** | |
CN112163160B (zh) | 基于知识图谱的敏感识别方法 | |
CN104615721A (zh) | 用于基于退货关联信息推荐商品的方法和*** | |
CN112818048A (zh) | 数据仓库的分层构建方法、装置、电子设备及存储介质 | |
CN108021627A (zh) | 关联数据的存储方法及装置 | |
CN114253939A (zh) | 一种数据模型的构建方法、装置、电子设备及存储介质 | |
CN106096987A (zh) | 一种实时递归计算成本和利润的进销存***及方法 | |
CN108537635A (zh) | 一种产品的推荐方法及装置 | |
Yang et al. | Discovery of online shopping patterns across websites | |
CN112948447A (zh) | 一种基于网状结构的用户信息高效检索方法 | |
CN112258244B (zh) | 确定目标物品所属任务的方法、装置、设备及存储介质 | |
CN110765100B (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
Sapir et al. | A methodology for the design of a fuzzy data warehouse | |
CN111444368A (zh) | 构建用户画像的方法、装置、计算机设备及存储介质 | |
CN111723122A (zh) | 数据间关联规则的确定方法、装置、设备及可读存储介质 | |
CN114036387A (zh) | 大健康领域标签体系及用户画像构建方法 | |
CN112000723B (zh) | 一种企业信息管理装置及其应用 | |
CN114564914A (zh) | 表格数据的展示方法、装置、电子设备及介质 | |
CN111460300A (zh) | 网络内容推送方法、装置及存储介质 | |
CN112819404A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
Krathu et al. | Semantic interpretation of UN/EDIFACT messages for evaluating inter-organizational relationships | |
US20240232200A9 (en) | Order searching method, apparatus, computer device, and storage medium | |
Yulia et al. | Odoo Data Mining Module Using Market Basket Analysis | |
Firestone et al. | Knowledge base management systems and the knowledge warehouse: a" Strawman |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210611 |