Я понимаю, что в этом вопросе учитывается специфика реализации, но я также понимаю, что, возможно, я что-то здесь не так делаю. Если так, что я мог сделать лучше? Если у Gremlin есть пакетная функция отправки запросов с несколькими результатами, о которой я не знаю, это решит проблему. Например, Гремлин, запустите эти три запроса параллельно и дайте мне их результаты.
По сути, мне нужно знать, когда у вершины есть определенное ребро, и если у него нет этого ребра, мне нужновытащить пробел. Итак ...
g.V().as("v").coalesce(outE("someLabel").has("someProperty","someValue"),constant()).as("e").select("v","e")
Этот запрос 10x дороже, чем просто получение краев с помощью:
g.V().outE("someLabel").has("someProperty","someValue")
Так что, если я хочу получить наборвершины с их ребрами или пустые заполнители, у меня есть два варианта: сделать два дискретных запроса и «объединить» данные в API или сделать один очень дорогой запрос.
Я работаю с предположением, что в Gremlin,мы " делаем это за одну поездку ", и это на самом деле может быть совершенно неверным. Тем не менее, я также знаю, что извлечение фрагментов данных и эффективное объединение в API - плохая практика, потому что это нарушает принцип инкапсуляции. Это также добавляет накладные расходы туда и обратно.