Это выглядит возможным, но потребует некоторой работы. Vertex
и Edge Ids
в TinkerGraph
определяются с использованием IDManagers
, что делается здесь .
Вы можете видеть, что это решается через значение конфигурации, которое в конечном итоге использует отражение для построения IDManager
.
Так что вам нужно будет сделать следующее:
Создайте свой собственный IDManager
, реализовав интерфейс , в качестве руководства вы можете использовать менеджер по умолчанию . Например:
public enum DefaultIdManager implements IdManager {
...
ANY {
@Override
public Long getNextId(final TinkerGraph graph) {
return unique random number
}
}
...
}
Затем вам нужно будет создать конфигурацию с указанным вашим новым менеджером и создать тинкерграф, используя этот менеджер:
BaseConfiguration config = new BaseConfiguration();
config.addProperty(TinkerGraph.GREMLIN_TINKERGRAPH_EDGE_ID_MANAGER, "your.package.structure.YourIdManager.ANY");
TinkerGraph.open(config);
Мне бы хотелось узнать, есть ли более простой способ, но я думаю, что это сработает.
Примечание стороны:
Может быть проще проверить, обеспечивает ли ваша БД производственного графа слой в памяти. Я знаю, что это делают несколько графических БД, и лучше использовать их вместо TinkerGraph
. TinkerGraph
на самом деле предназначен только для того, чтобы обшарить, я верю.