Результаты запросов, которые возвращают узлы (и / или Relationshisp), включают (среди прочего) собственные идентификаторы узлов.
Когда браузер neo4j расширяет узел, собственный id
для этогоузел используется для генерации строки запроса из этого шаблона (как скопировано из функции getNeighbours
в браузер ):
const query = `MATCH path = (a)--(o)
WHERE id(a) = ${id}
AND NOT (id(o) IN[${currentNeighbourIds.join(',')}])
RETURN path, size((a)--()) as c
ORDER BY id(o)
LIMIT ${this.props.maxNeighbours -
currentNeighbourIds.length}`
Как видите, этот запрос выполняетмного работы, но поиск по собственному идентификатору (в предложении WHERE
) быстро получает узел a
, и как только он получен, соседние узлы (o
) также можно быстро получить.
Ваши запросы должны быть в состоянии получить более быстрые результаты, если у вас есть индекс для :LABEL(Name)
.
И, если вы использовали собственный идентификатор напрямую (как это делает браузер), вы должныполучить еще более быстрые результаты (я предполагаю, что id
передается как параметр ):
MATCH path = (x)-[r]-(y)
WHERE ID(x) = $id
RETURN x, r, y