首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有方法在超图数据库中查询特定的HGLink名称?

有没有方法在超图数据库中查询特定的HGLink名称?
EN

Stack Overflow用户
提问于 2018-01-11 16:11:55
回答 2查看 59关注 0票数 0

我是HypergraphDB的新手,我只运行了几个测试来了解事情是如何工作的,并且遇到了这个问题。我已经创建了一个具有不同HGRel的超图,我希望获得具有特定名称的超图,并试图使用以下代码

代码语言:javascript
复制
List<HGRel> r = hg.getAll(graph, hg.and(hg.type(HGRel.class), hg.eq("name", "XXX")));

基本上,我希望找到所有名为"XXX“的超边,但不幸的是,我得到了这个错误。

代码语言:javascript
复制
java.lang.RuntimeException: org.hypergraphdb.HGException: Could not find projection for 'name' in HG type a5edd585-2d5c-4555-8fdf-f9954bd35fe9 for HGRel
at org.hypergraphdb.transaction.HGTransactionManager.ensureTransaction(HGTransactionManager.java:324)
at org.hypergraphdb.query.cond2qry.ExpressionBasedQuery.<init>(ExpressionBasedQuery.java:812)
at org.hypergraphdb.HGQuery.make(HGQuery.java:174)
at org.hypergraphdb.HyperGraph.find(HyperGraph.java:1524)
at org.hypergraphdb.HGQuery$hg$10.call(HGQuery.java:1753)
at org.hypergraphdb.HGQuery$hg$10.call(HGQuery.java:1)
at org.hypergraphdb.transaction.HGTransactionManager.transact(HGTransactionManager.java:400)
at org.hypergraphdb.transaction.HGTransactionManager.ensureTransaction(HGTransactionManager.java:327)
at org.hypergraphdb.HGQuery$hg.getAll(HGQuery.java:1746)

我总是可以在应用程序上获得所有的HGRel和过滤器,但是我想知道我在这里做错了什么。提前谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-02 05:29:23

策划人不是故意在那里的。它不是HRel的可变属性。当您创建HGRel原子时,通常需要将它们添加到一个HGRelType中,这个HGRelType本身将包含这个标签。

在您的情况下,可能发生的情况是,您将HGRel存储为Java,而根本不使用HGRelType。这是一种策略,但特定的API (HGRelType、HGRel、HGRelTypeConstructor)并不打算以这种方式使用。

相反,我建议创建您自己的泛型LabeledLink类,其中的名称是bean属性,然后通过它进行索引,这样您就可以更有效地查询:

公共类LabeledLink扩展了HGPlainLink {私有字符串标签;

公共LabeledLink(HGHandle…)(目标){超(目标);}

公共无效setLabel(字符串标签)…

公共字符串getLabel() {返回标签;}

graph.getTypeSystem().getTypeHandle(LabeledLink.class);HGHandle labeledType =graph.getIndexManager().register(labeledType,“label”);

干杯,鲍里斯

票数 0
EN

Stack Overflow用户

发布于 2018-01-11 16:26:30

找到了问题所在。在HGRel中没有名字设置器。只需放置一个setter,上面的代码就可以正常工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48211435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档