【发布时间】:2019-07-12 23:37:00
【问题描述】:
我有顶点:site、person、interest-category。
边缘是:
site->hasUser->person
person->hasInterest(count: N)->interest-category(属性count 保存了一个数字,它是这种特定用户兴趣关系的兴趣权重)。
基本上,我想通过使用用户兴趣来获取与网站相关的所有兴趣。一个示例结果是:
interest-category: news, totalCount: 15
interest-category: media, totalCount: 20
其中 totalCount 是该站点/类别的所有用户的边属性 count 的总和。
这是我正在使用的测试样本:
graph = TinkerGraph.open()
g = graph.traversal()
g.addV('person').property(id, 'rodrigo').property('name', 'rodrigo').next()
g.addV('person').property(id, 'john').property('name', 'john').next()
g.addV('site').property(id, 'foxsports').property('name', 'Fox Sports').next()
g.addV('interest-category').property(id, 'sports').property('name', 'Sports').property('level', 'l1').next()
g.addV('interest-category').property(id, 'media').property('name', 'Media').property('level', 'l1').next()
g.addV('interest-category').property(id, 'business-and-finance').property('name', 'Business & Finance').property('level', 'l1').next()
g.addV('interest-category').property(id, 'soccer').property('name', 'Soccer').property('level', 'l2').next()
g.addV('interest-category').property(id, 'basketball').property('name', 'Basketball').property('level', 'l2').next()
g.addV('interest-category').property(id, 'mma').property('name', 'MMA').property('level', 'l2').next()
g.addV('interest-category').property(id, 'news').property('name', 'News').property('level', 'l2').next()
g.addV('interest-category').property(id, 'finance').property('name', 'Finance').property('level', 'l2').next()
g.addV('interest-category').property(id, 'sports-industry').property('name', 'Sports Industry').property('level', 'l2').next()
g.addE('hasUser').from(g.V('foxsports')).to(g.V('rodrigo')).next()
g.addE('hasUser').from(g.V('foxsports')).to(g.V('john')).next()
g.addE('hasSubCategory').from(g.V('sports')).to(g.V('soccer')).next()
g.addE('hasSubCategory').from(g.V('sports')).to(g.V('basketball')).next()
g.addE('hasSubCategory').from(g.V('sports')).to(g.V('mma')).next()
g.addE('hasSubCategory').from(g.V('media')).to(g.V('news')).next()
g.addE('hasSubCategory').from(g.V('business-and-finance')).to(g.V('finance')).next()
g.addE('hasSubCategory').from(g.V('business-and-finance')).to(g.V('sports-industry')).next()
g.addE('hasInterest').from(g.V('john')).to(g.V('sports')).property('count', 5).next()
g.addE('hasInterest').from(g.V('rodrigo')).to(g.V('sports')).property('count', 5).next()
g.addE('hasInterest').from(g.V('rodrigo')).to(g.V('media')).property('count', 3).next()
g.addE('hasInterest').from(g.V('rodrigo')).to(g.V('business-and-finance')).property('count', 1).next()
g.addE('hasInterest').from(g.V('rodrigo')).to(g.V('soccer')).property('count', 1).next()
g.addE('hasInterest').from(g.V('rodrigo')).to(g.V('basketball')).property('count', 1).next()
g.addE('hasInterest').from(g.V('rodrigo')).to(g.V('mma')).property('count', 2).next()
【问题讨论】: