问题描述
我浏览了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。
1楼
作为Graql查询的结果提供的答案是您在查询本身中指定的变量(及其值)的集合。
在这种情况下,要获取person
实例的name
,您可以将其包含在查询中,如下所示:
GetQuery query = Graql.match(var("p").isa("person").has("name", var("n"))).limit(10).get();
Graql等价物match $p isa person, has name $n; get;
match $p isa person, has name $n; get;
。
现在,您可以使用提供的方法来检索每个变量的可用信息。
在这种情况下,变量n
包含一个attribute
,你想要检索它的value()
,如下所示:
answers.forEach(answer -> System.out.println(answer.get("n").asAttribute().value()))