使用janusgraph构造快速查询

时间:2018-12-15 18:43:13

标签: graph-theory janusgraph

我有一个图形,该图形应该跟踪某个用户可以访问的功能数量。

大约有40个用户和4,000个功能。所有用户都可以访问一组核心的默认功能。大约一半的功能是共享的:2,000个功能。因此,该图的边不少于80,000。 (我对共享一组相对静态的功能确实有很多优势。这是一个问题,但不是本文的重点。)

给出用户ID(UUID),如何构造一个查询,该查询将有效地检索用户有权访问的所有功能?我当前的查询如下:

val graph = // my graph
val query = 
  graph
    .V(user)
    .out("user-feature")
    .has("type", "feature") // Interestingly, removing this makes the query slower
    .dedup()
    .valueMap("feature-name", "id")
    .toList

这将给我一个Map[String, String]代表该用户有权访问的所有功能的列表。但是查询时间约为30秒。我想把那段时间减少一半。我可以在不更改数据结构的情况下(暂时)对查询做些什么,这将有助于减少时间?

0 个答案:

没有答案