Мой вопрос является продолжением вопроса, который я задал здесь => [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, хост № 1 -> случайный № 5 и ip № 4 -> случайный № 5. Таким образом, для объекта O с k полями будет возможно k новых вершин и k * (k - 1)/2 ребер.
Мой вопрос... можно ли улучшить мой код? Я пытался работать с JSON с 10 000 объектов, каждый с 7 полями, но это требует времени. Как я могу добиться этого быстрее? Могу ли я обрабатывать пакеты данных? Я слышал об индексах, но не знаю, что это значит и как это может все улучшить.
[1] Обычный формат JSON в GraphSON
[2] https://pastebin.com/g7qnQdq9
Редактировать: Хорошо, я жестко закодировал несколько команд graph.createIndex(X,Vertex.class), где X = имя полей в моем JSON. Вроде быстрее, да. Как я могу улучшить его? Что я делаю не так и как я могу сделать это лучше? Должен ли я вместо этого пытаться сгенерировать JSON в формате, в котором гремлин экспортирует график? Я думаю, что добиться такого формата чрезвычайно сложно. Я не могу найти надлежащую документацию и отчаянно пытаюсь найти ответ, так как это проблема, связанная с работой.
Редактировать 2: Кстати, я только что попробовал этот скрипт => https://pastebin.com/Uts4KQCH с 50 000 объектов JSON и около 38 000, это сильно замедлилось, например, с 1000 за 1,5 секунды до 1000 за 30 секунд.