我想获取图表中所有可用标签的列表,但我不知道架构。有没有办法找出所有标签的清单?
我尝试了以下内容:
g.V().Label().values()
g.V().hasLabel().values()
但他们没有工作。
答案 0 :(得分:4)
在格雷姆林你会这样做:
g.V().label().dedup()
但是这需要扫描图中的所有顶点,这将是昂贵的。 JanusGraph具有可以使用JanusGraphManagement
类查询的模式。
JanusGraphManagement mgmt = graph.openManagement();
Iterable<VertexLabel> labels = mgmt.getVertexLabels();
答案 1 :(得分:0)
在Scala中,如果您仅有的是JanusGraph中的GraphTraversalSource,则可以执行以下操作:
import org.janusgraph.core.JanusGraph
val graph: JanusGraph = g.getGraph.asInstanceOf[JanusGraph]
val mgmt: JanusGraphManagement = graph.openManagement()
然后从那里得到顶点标签的可迭代项:
val vLabels: Iterable[VertexLabel] = mgmt.getVertexLabels.asScala
(。asScala仅在您导入gremlin-scala的情况下才起作用;否则,您可以省略它而获得Java迭代器。)