GraphGists

JIiwHO1

我们将基于电子游戏英雄联盟进行案例研究。英雄联盟是一款 MOBA(多人在线战斗竞技场)游戏,玩家使用独特的角色(称为英雄)互相战斗。在这个游戏中,选择合适的英雄来对抗特定的敌人,并购买最好的“武器”以增加获胜的机会非常重要;我们的模型旨在轻松获取有用的信息,帮助玩家在游戏开始前做出决策。武器被称为物品(ITEMS),我们将其创建为节点。玩家为英雄购买的一组武器被称为出装(BUILD),它们也是节点。一个英雄被另一个英雄克制,意味着他拥有对抗(HAS_COUNTER),我们将其保存为关系。

MATCH (n)
RETURN n
G1jtIJL

所以,你准备好选择你的英雄,敌人选择了飞升者泽拉斯;你遇到了麻烦,该怎么办?

问问 NEO4J!

“魔镜魔镜告诉我,谁是世界上最美丽的女人?”

不,等等… “neo,给我列出针对泽拉斯的前3个1级克制英雄”

MATCH (enemy:Champion)-[c:HAS_COUNTER]->(pick:Champion)
WHERE c.level = 1 AND enemy.name = 'Xerath'
RETURN pick.name as Pick
LIMIT 3

这些是针对泽拉斯的所有前三名1级克制英雄

(级别反映 HAS_COUNTER 关系的相关性)

“我喜欢玩菲兹”

我应该带什么召唤师技能?

neo 给我列出菲兹最常用的前2个召唤师技能

MATCH (myPick:Champion)-[c:HAS_POPULAR_SPELL]->(spell:Spell)
WHERE myPick.name = 'Fizz'
RETURN spell.name as Spell
LIMIT 2

我现在玩的是菲兹,但我不知道什么物品是最好的?

这次我知道“Faker”,一位最优秀的英雄联盟玩家之一,肯定玩过这个英雄,所以试试特定的查询:“Neo 给我列出 Faker 为菲兹最近做出的出装中的物品”(我们把出装名称保存为 DateTIMESTAMP,这样就可以按名称排序获取最新的。这应该通过软件实现,为了通过 Cypher 获取最新的物品,我们还将毫秒日期作为出装的属性也保存了)

MATCH (myPick:Champion)-[c:HAS_BUILD]->(build:ChampionBuild)-[:HAS_ITEM]->(item:Item),(build:ChampionBuild)-[:DONE_BY]->(p:Player)
WHERE myPick.name = 'Fizz' AND p.name = 'Faker'
WITH max(build.milliseconds) AS maxDate
MATCH (myPick:Champion)-[c:HAS_BUILD]->(build:ChampionBuild)-[:HAS_ITEM]->(item:Item),(build:ChampionBuild)-[:DONE_BY]->(p:Player)
WHERE myPick.name = 'Fizz' AND p.name = 'Faker' AND build.milliseconds = maxDate
RETURN item.name AS item
h0vTlGa

统计信息

获取“xPeke”玩过的所有英雄

MATCH (champions:Champion)-[c:HAS_BUILD]->(build:ChampionBuild)-[:DONE_BY]->(p:Player)
WHERE p.name = 'xPeke'
RETURN DISTINCT champions.name as ChampionName

获取所有英雄中最受欢迎的召唤师技能

MATCH (champions:Champion)-[c:HAS_POPULAR_SPELL]->(spell:Spell)
RETURN spell.name as SpellName, count(spell.name) AS SpellCount
ORDER BY SpellCount DESC
LIMIT 1

获取英雄“菲兹”所有出装中最常用的召唤师技能

MATCH (champions:Champion)-[c:HAS_BUILD]->(build:ChampionBuild)-[:HAS_SPELL]->(spell:Spell)
WHERE champions.name = 'Fizz'
RETURN spell.name AS SpellName, count(spell.name) AS SpellCount
ORDER BY SpellCount DESC
LIMIT 1
© . All rights reserved.