Что запускает запрос Neo4j при нажатии на кнопку «Развернуть»? - PullRequest
0 голосов
/ 26 июня 2018

Какой запрос выполняет neo4j при нажатии кнопки расширения на узле браузера neo4j? Кнопка расширения браузера neo4j

Моя проблема в том, что я хочу получить все узлы / отношения, которые находятся рядом с целевым узлом.Однако я попробовал следующий запрос шифра

MATCH (x:LABEL {Name: "name"})-[r]-(y)
RETURN x, r, y

и запрос на основе apoc

MATCH (x:LABEL) WHERE x.Name = "name"
CALL apoc.path.subgraphAll(x, {maxLevel:1}) YIELD nodes, relationships
RETURN nodes, relationships;

Ни одна из этих операций не работает так быстро, как нажатие кнопки расширения на узле.На самом деле, он медленнее по величине.

Версия Neo4j: 3.3.1

Спасибо!

1 Ответ

0 голосов
/ 26 июня 2018

Результаты запросов, которые возвращают узлы (и / или 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...