首页 > 解决方案 > 如何使用 Java 查询 Grakn?

问题描述

我浏览了 Java api 的文档来查询 Grakn 数据库。

Grakn.Transaction readTransaction = session.transaction(GraknTxType.READ);
GetQuery query = Graql.match(var("p").isa("person")).limit(10).get();
Stream<ConceptMap> answers = query.withTx(readTransaction).stream();
answers.forEach(answer -> System.out.println(answer.get("p").id()));

它正在打印 id,但我想查看数据,即与此人关联的名称。我想查看结果中的内容。它只是显示id。

标签: javavaticle-typedb

解决方案


作为 Graql 查询的结果提供的答案是您在查询本身中指定的变量(及其值)的集合。

在这种情况下,要获取 的name实例person,您可以将其包含在查询中,如下所示:

GetQuery query = Graql.match(var("p").isa("person").has("name", var("n"))).limit(10).get();

Graql 等价物是match $p isa person, has name $n; get;.

现在,您可以使用Concept API中可用的方法来检索每个变量的可用信息。

在这种情况下,变量n包含一个attribute并且您想要检索它value(),如下所示:

answers.forEach(answer -> System.out.println(answer.get("n").asAttribute().value()))


推荐阅读