10.4. Start

  1. 10.4.1 Получить узел или связь из индекса
  2. 10.4.2 Получить узел или связь по id
  3. 10.4.3 Получить несколько или все узлы

Каждый запрос описывает образец, и в этом образце можно иметь несколько стартовых точек. Стартовой точкой является связь или узел, к которому привязывается образец. Вы можете ввести стартовые точки либо по поиску id, либо по поиску в индексе. Отметим, что попытка использовать индекс, который не существует, будет вызывать ошибку.

Замечание

START не является обязательным. Если вы явно не задачи стартовые точки, Cypher попытается выявить стартовые точки из вашего запроса. Это делается на основе меток узла или предикатов, содержащихся в вашем запросе. Смотри Глава 13 «Схема» для более подробной информации. Вообще говоря, предложение START действительно необходимо при использовании унаследованных индексов.

Это граф, используемый далее в примерах:


Рис. 10.4 Граф

10.4.1 Получить узел или связь из индекса

10.4.1.1 Индексный поиск узла

Когда стартовая точка может быть найдена при поиске в индексе, это может быть сделано, например, так: node:имя-индекса(ключ = "знчение"). В этом примере существует индекс узлов с именем nodes.

Запрос

START n=node:nodes(name = "A")
RETURN n

возвращает проиндексированный узел с именем "A".

Таблица 10.38 Результат

n
Node[0]{name:"A"}

10.4.1.2 Поиск связи по индексу

Когда стартовая точка может быть найдена при поиске в индексе, это может быть сделано, например, так: relationship:имя-индекса(ключ = "значение").

Запрос

START r=relationship:rels(name = "Andrés")
RETURN r

возвращает проиндексированную связь со свойством name, установленным в значение "Andrés".

Таблица 10.39 Результат

r
:KNOWS[0]{name:"Andrés"

10.4.1.3 Узел по запросу индекса

Если стартовая точка может быть найдена с помощью более сложных запросов (Lucene), такой синтаксис может использоваться: node:имя-индекса("запрос"). Это позволяет писать более продвинутые индексные запросы.

Запрос

START n=node:nodes("name:A")
RETURN n

возвращает проиндексированный узел с именем "A".

Таблица 10.40 Результат

n
Node[0]{name:"A"}

Предыдущая | Следующая