我的问题是对我在这里提出的问题的跟进=> [1]。在与 stephen mallette 进行了长时间的交谈后,他向我展示了如何构建一个图表,该图表将在我启动服务器时加载。我的最终脚本是这个 [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 边缘、主机 #1 -> 随机 #5 和 ip #4 -> 随机 #5。因此,对于具有 k 个字段的对象 O,可能会有 k 个新顶点和 k * (k - 1) / 2 条边。
我的问题是......我的代码可以改进吗?我尝试使用包含 10k 个对象的 JSON,每个对象有 7 个字段,但这需要时间。我怎样才能以更快的方式实现这一目标?不能批量处理数据吗?我听说过索引,但我不知道这意味着什么,也不知道它如何改善一切。
[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 到 1000在 30 秒内。