2017-08-07 63 views
3

我在它提到的文档中看到UserSuppliedId支持边缘,但是我创建的任何边都忽略了id的id属性,并指定了一个guid。我不想在两个顶点之间添加重复的边,所以我要将自己的ID分配给它(然后我可以使用常规的SQL语法快速高效地查询它)。我怎样才能使用我自己的'id'作为边缘?我在创建时如何为CosmosDB图形边缘分配一个ID?

回答

1

哪些文档是你指什么?这是gremlin文档吗?

需要注意的是,我们目前控制的边缘自己的ID,这样的边缘可以与源顶点查询效率的原因并置。这是一个错误,我们不会在确实提供了边缘标识时抛出异常。

我们正在改变这种行为,将允许用户指定ID,同时创造优势。我将与团队核对,并为您提供ETA。

再次感谢您向我们举报。请告诉我们,如果我们能以任何其他方式提供帮助。

Jayanta

+0

本页:https://docs.microsoft.com/en-us/azure/cosmos-db/gremlin-support在Gemlin Docs下,它提到了支持UserSuppliedIds的边缘 –

+0

@Jayanta Mondal我看不到Id边缘与主机托管有什么关系。边缘与外部顶点存储在同一个分区中,这有助于提高查询性能,Id应该不会影响 –

0

因为它不会出现今天通过小鬼的API我建议你看一看使用CRUD操作文档的API对你的图形要素的支持。这是我在工作中采取的方法,我们取得了巨大成功。基本上,如果通过Gremlin插入几个顶点和边,然后在门户中使用SQL检查生成的文档,您将能够看到底层存储中预期的格式。

建设上,我们设计了一些库,采取波苏斯为我们的各种顶点和边类型,并将其转化成预期由宇宙与后端的图形格式。这将允许您完全控制边缘的ID选择。您指出的一个非常重要和常见的用例对我们的系统同样重要,它可以通过限制它的ID来防止特定顶点的多条边。

+0

我发现了这个相同的选项,但是,在验证我使用的客户端版本时,它看起来像有一些更新。正在使用0.2.0预览。我们可以使用SQL语法进行查询,这确实是我的确如何验证是否有大量重复数据正在创建,因此我为什么通过提供自己的id来尝试Oliver提到的内容,但是使用0.2.0,它显然忽略了它。将尝试0.2.4。 –

1

我已经测试了以下的gremlin表达这增加了一个边缘,并分配一个自定义id。当创建边缘或顶点id属性只能分配:

g.V('1231234').addE('postedTo').property('id', '1231234:post_4').from(g.V('post_4')) 

这个工作使用Microsoft.Azure.Graph NuGet包(0.2.4-preview0.2.2-preview)的最新版本和以前版本:

注该元素通过addVaddE操作。元素写入后,id属性为只读。

我没有时间在一个图形服务器实例上测试它,但是该软件包的版本号0.2.2-preview应该与部署的内容相当,因此我期望得到相同的结果。