Я использую Graphexp для визуализации графика.Graphexp внутренне использует запрос gremlin для получения вывода.
Это запрос, который выполняет Graphexp:
nodes = g.V().limit(50).toList();edges = g.V(nodes).aggregate('node').outE().as('edge').inV().where(within('node')).select('edge').toList();[nodes,edges]
Я создал собственный API поверх Janusraph для операции CRUD.Я вставляю две вершины и одно ребро между ними с некоторыми спецификаторами (ключ, пары значений) в ребре.
После выполнения вышеуказанного запроса Graphexp возвращает:
id: {relationId: "551-6co-13it-m54"}
inV: 28696
inVLabel: "vertex"
label: "intend"
outV: 8232
outVLabel: "vertex"
properties:
owner_id: {key: "owner_id", value: "18699980"}
rel_id: {key: "rel_id", value: "intend"}
rel_name: {key: "rel_name", value: ""}
relation_specifier: {key: "relation_specifier", value: "[]"}
src_specifier: {key: "src_specifier", value: "-1466934972"}
tar_specifier: {key: "tar_specifier", value: "[]"}
__proto__: Object
type: "edge"
Как мы можемвижу, что здесь мало чего пустоПример: rel_name, tar_specifier и т. Д.
Теперь я получаю другой результат с другим запросом:
Мой запрос (написанный на Java):
g.V().has("name", source).outE().where(__.inV().has("name", target)).valueMap().toList()
Использованиемой собственный API Я отправляю источник и цель в указанном выше запросе.
Мой ответ на запрос:
{
"res": [
{
"tar_specifier": "[for month]",
"src_specifier": "[]",
"relation_specifier": "[]",
"rel_name": "intend",
"owner_id": "",
"rel_id": "-1466934972",
"doc_id": "18699980"
}
]
}
Мой ожидаемый вывод - последний, который показывает данные в точности так, как я отправил,IDK, почему в пользовательском интерфейсе ответ, который они получают, полностью запутан.
Пример: "rel_name" - это "intend" в последнем выводе (как и ожидалось), тогда как в ответе пользовательского интерфейса ему присваивается rel_id.
Мы оба используем разные запросы Gremlin, но, тем не менее, данные не должны быть назначены где-то еще или становятся пустыми.
Я отладил пользовательский интерфейс и получил тот же запрос и ответ, как упомянутовыше.
Я новичок в Gremlin, но у меня есть понимание различных баз данных, и я считаю, что организация данных не зависит от запроса.
Заранее спасибо!