我正在测试ArangoDb使用框架提供的图形功能。
我正在尝试创建一个非常简单的图形,类似于此处提供的Java驱动程序示例,https://github.com/arangodb/arangodb-java-driver/
List<EdgeDefinitionEntity> edgeDefinitions = new ArrayList<EdgeDefinitionEntity>();
EdgeDefinitionEntity edgeDefinition = new EdgeDefinitionEntity();
edgeDefinition.setCollection("myEdgeCollection");
List<String> from = new ArrayList<String>();
from.add("myCollection1");
edgeDefinition.setFrom(from);
List<String> to = new ArrayList<String>();
to.add("myCollection2");
edgeDefinition.setTo(to);
edgeDefinitions.add(edgeDefinition);
GraphEntity graph = arangoDriver.createGraph("myGraph",
edgeDefinitions, null, true);
User myObject1 = new User("Homer", 38);
User myObject2 = new User("Bart", 36);
User myObject3 = new User("Marge", 39);
User myObject4 = new User("Lisa", 40);
DocumentEntity<User> vertexFrom1 = arangoDriver.graphCreateVertex(
"myGraph", "myCollection1", myObject1, true);
DocumentEntity<User> vertexFrom2 = arangoDriver.graphCreateVertex(
"myGraph", "myCollection1", myObject2, true);
DocumentEntity<User> vertexTo1 = arangoDriver.graphCreateVertex(
"myGraph", "myCollection2", myObject3, true);
DocumentEntity<User> vertexTo2 = arangoDriver.graphCreateVertex(
"myGraph", "myCollection2", myObject4, true);
EdgeEntity<?> edge1 = arangoDriver.graphCreateEdge("myGraph",
"myEdgeCollection", null, vertexFrom1.getDocumentHandle(),
vertexTo1.getDocumentHandle(), null, null);
EdgeEntity<?> edge2 = arangoDriver.graphCreateEdge("myGraph",
"myEdgeCollection", null, vertexFrom2.getDocumentHandle(),
vertexTo2.getDocumentHandle(), null, null);
边缘集合似乎有正确的映射,
{"_from":"myCollection1/1544266710","_to":"myCollection2/1544987606"}
{"_from":"myCollection1/1544528854","_to":"myCollection2/1545249750"}
我正在尝试在Web界面中可视化此图表。图形可视化显示了一些我不理解的奇怪行为。在上面的设置中,我希望图中的四个节点的边缘位于&#34; Homer&#34; - &#34; Marge&#34;和&#34;巴特&#34; - &#34; Lisa&#34;但我只看到两个节点和一个边缘,即荷马 - 玛格。
Visulaization视图本身有时会显示没有节点,并且会重新访问同一页面节点。
答案 0 :(得分:4)
图表查看器以随机顶点开头。这意味着它可能会在它打开时使用完全不同的起始顶点。
这是因为一般情况下的图形可以包含许多顶点并且将它们全部显示在一起不是一个选项,因为渲染或甚至崩溃浏览器可能需要很长时间。在开始时放入显示器中心的哪个顶点也不容易确定,因为这将要求图形查看器知道哪个顶点比其他顶点更重要或对用户最重要。由于它不知道,有随机起始顶点选择。
您可以通过单击图表查看器右上角的过滤器图标来选择不同的开始/中心顶点。这将显示一个搜索输入字段,您可以使用该字段按任何属性选择起始顶点(例如,如果您的顶点包含name
属性,则Homer
== name
。
如果存在这样的顶点,它将被放入屏幕的中心,以及它所有直接连接的顶点。请注意,仅显示从起始顶点到其直接连接顶点的关系/边。默认情况下,间接连接不会显示在图表查看器中。单击显示的任何顶点将扩展(或收缩)它们,并可能会带来进一步的关系。
所有这一切都完成了,因为它可能无法在开始时显示整个图形(想象一个具有几百万个节点的图形)。但正如您的问题所示,当前的解决方案可能并不直观。