用于创建图形的Groovy脚本 - 使其更快

时间:2017-07-06 14:39:17

标签: json algorithm groovy gremlin gremlin-server

我的问题是我在这里问的问题的后续跟进=> [1]。在与斯蒂芬·马莱特进行了长时间的谈话之后,他向我展示了如何构建一个将在我启动服务器时加载的图表。我的最后一个剧本是[2]。我想做的事?假设我有:

[
{
    "host": "google.com",
    "ip": "8.8.8.8",
    "random": 25
},
{
    "host": "google.com",
    "ip": "1.2.3.4",
    "random": 10
}
]

将会有一个顶点,其属性为“host”,其值为google.com(#1)。将有一个顶点,其属性为“ip”,值为8.8.8.8(#2),另一个顶点的属性为“random”,值为25(#3)。另外,我将创建3条边。主持人#1 - > ip#2,主机#1 - >随机#3和ip#2 - >随机#3。对于另一个对象,我不会创建另一个google.com顶点,因为它已经存在,但我将创建ip#4和随机#5。我将创建一个主机#1 - > ip#4 edge,host#1 - >随机#5和ip#4 - >随机#5。因此对于具有k个场的对象O,将有k个可能的新顶点和k *(k-1)/ 2个边。

我的问题是......我的代码可以改进吗?我尝试使用带有10k对象的JSON,每个对象有7个字段,但这需要时间。我怎样才能更快地实现这一目标?我不能处理批量数据吗?我听说过索引,但我不知道这意味着什么,或者它如何改善一切。

[1] Normal JSON to GraphSON format

[2] https://pastebin.com/g7qnQdq9

编辑: 好吧,我硬编码了多个graph.createIndex(X,Vertex.class)命令,其中X =我的JSON中字段的名称。似乎更快,是的。我该如何进一步改进它?我做错了什么,我怎么能更好地做到这一点?我应该尝试以gremlin格式生成JSON导出图形,而不是这样做吗?我认为实现这种格式非常困难。 我找不到合适的文档,我迫不及待地想找到答案,因为这是一个与工作相关的问题。

编辑2: 顺便说一句,我刚试过这个=> https://pastebin.com/Uts4KQCH脚本带有50k对象JSON和大约38k,它有点慢,比如从1.5秒内的1000,到30秒内的1000。

0 个答案:

没有答案