ArangoDb 中的 Web 界面可视化未按预期工作
Visulaization on web interface in ArangoDb not working as expected
我正在测试 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 界面中可视化此图。图形可视化显示了一些我不理解的奇怪行为。在上面的设置中,我希望图中有四个节点,边在 "Homer" -- "Marge" 和 "Bart" -- "Lisa" 之间,但我只看到两个节点和一个边,即荷马 - 玛格。
可视化视图本身有时会显示没有节点,并且在重新访问同一页面时会出现节点。
图形查看器从一个随机顶点开始。这意味着它可能在打开时使用完全不同的起始顶点。
这是因为一般情况下的图形可以包含许多顶点并且将所有顶点一起显示不是一种选择,因为它可能需要很长时间才能呈现甚至浏览器崩溃。开始时将哪个顶点放在显示的中心也不是很容易确定,因为这需要图形查看器知道哪个顶点比其他顶点更重要或对用户最重要。因为它不知道,所以有随机起始顶点 selection。
您可以 select 不同的 start/center 顶点,方法是单击图表查看器右上角的过滤器图标。这将打开一个搜索输入字段,您可以使用它来 select 任何属性的起始顶点(例如 name
== Homer
如果您的顶点包含 name
属性) .
如果存在这样的顶点,它将连同所有直接连接的顶点一起放在屏幕的中心。请注意,只会显示从起始顶点到其直接连接的顶点的 relationships/edges。默认情况下,间接连接不会显示在图表查看器中。单击显示的任何顶点将展开(或收缩)它们,并可能产生进一步的关系。
再次完成所有这一切,因为可能无法在开始时显示整个图形(想象一个具有几百万个节点的图形)。但是正如您的问题所表明的,当前的解决方案可能并不直观。
我正在测试 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 界面中可视化此图。图形可视化显示了一些我不理解的奇怪行为。在上面的设置中,我希望图中有四个节点,边在 "Homer" -- "Marge" 和 "Bart" -- "Lisa" 之间,但我只看到两个节点和一个边,即荷马 - 玛格。
可视化视图本身有时会显示没有节点,并且在重新访问同一页面时会出现节点。
图形查看器从一个随机顶点开始。这意味着它可能在打开时使用完全不同的起始顶点。
这是因为一般情况下的图形可以包含许多顶点并且将所有顶点一起显示不是一种选择,因为它可能需要很长时间才能呈现甚至浏览器崩溃。开始时将哪个顶点放在显示的中心也不是很容易确定,因为这需要图形查看器知道哪个顶点比其他顶点更重要或对用户最重要。因为它不知道,所以有随机起始顶点 selection。
您可以 select 不同的 start/center 顶点,方法是单击图表查看器右上角的过滤器图标。这将打开一个搜索输入字段,您可以使用它来 select 任何属性的起始顶点(例如 name
== Homer
如果您的顶点包含 name
属性) .
如果存在这样的顶点,它将连同所有直接连接的顶点一起放在屏幕的中心。请注意,只会显示从起始顶点到其直接连接的顶点的 relationships/edges。默认情况下,间接连接不会显示在图表查看器中。单击显示的任何顶点将展开(或收缩)它们,并可能产生进一步的关系。
再次完成所有这一切,因为可能无法在开始时显示整个图形(想象一个具有几百万个节点的图形)。但是正如您的问题所表明的,当前的解决方案可能并不直观。