exponenta event banner

searchRelation

Поиск связей для Neo4j узла базы данных

Описание

пример

relinfo = searchRelation(neo4jconn,nodeinfo,direction) возвращает информацию о связи для исходного узла nodeinfo и направление связи с использованием соединения с базой данных Neo4j ®. Поиск начинается с исходного узла. Чтобы найти исходный узел, используйтеsearchNode или searchNodeByID.

пример

relinfo = searchRelation(neo4jconn,nodeinfo,direction,Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение. Например, 'RelationTypes',{'works with'} возвращает информацию для отношений, имеющих тип works with.

Примеры

свернуть все

Поиск информации об отношениях в базе данных Neo4j ® и отображение информации.

Предположим, что данные графика хранятся в базе данных Neo4j, представляющей социальный район. Эта база данных имеет семь узлов и восемь взаимосвязей. Каждый узел имеет только один уникальный ключ свойства name со значением в диапазоне от User1 через User7. Каждая связь имеет тип knows.

Создание Neo4j подключения к базе данных по URL-адресу http://localhost:7474/db/dataИмя пользователя neo4j, и пароль matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';

neo4jconn = neo4j(url,username,password);

Проверьте Message свойство объекта подключения Neo4j neo4jconn. Бланк Message указывает на успешное подключение.

neo4jconn.Message
ans =

     []

Получение исходного узла nodeinfo использование подключения к базе данных Neo4j и идентификатора узла 3.

nodeid = 3;

nodeinfo = searchNodeByID(neo4jconn,nodeid);

Поиск входящих связей с помощью подключения к базе данных Neo4j и исходного узла nodeinfo.

direction = 'in';

relinfo = searchRelation(neo4jconn,nodeinfo,direction)
relinfo = struct with fields:
       Origin: 3
        Nodes: [2×3 table]
    Relations: [1×5 table]

relinfo - структура, содержащая результаты поиска:

  • Origin - идентификатор узла для указанного исходного узла;

  • Nodes - таблица, содержащая все начальные и конечные узлы для каждой сопоставленной связи;

  • Relations - Таблица, содержащая все сопоставленные отношения

Доступ к таблице узлов.

relinfo.Nodes
ans=2×3 table
         NodeLabels      NodeData                  NodeObject             
         __________    ____________    ___________________________________

    1     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    3     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Откройте таблицу отношений.

relinfo.Relations
ans=1×5 table
         StartNodeID    RelationType    EndNodeID    RelationData                RelationObject             
         ___________    ____________    _________    ____________    _______________________________________

    3         1           'knows'           3        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Закройте подключение к базе данных.

close(neo4jconn)

Поиск информации об отношениях в базе данных Neo4j ® и отображение информации. Укажите тип связи и расстояние для поиска.

Предположим, что данные графика хранятся в базе данных Neo4j, представляющей социальный район. Эта база данных имеет семь узлов и восемь взаимосвязей. Каждый узел имеет только один уникальный ключ свойства name со значением в диапазоне от User1 через User7. Каждая связь имеет тип knows.

Создание Neo4j подключения к базе данных по URL-адресу http://localhost:7474/db/dataИмя пользователя neo4j, и пароль matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';

neo4jconn = neo4j(url,username,password);

Проверьте Message свойство объекта подключения Neo4j neo4jconn. Бланк Message указывает на успешное подключение.

neo4jconn.Message
ans =

     []

Получение исходного узла nodeinfo использование подключения к базе данных Neo4j и идентификатора узла 3.

nodeid = 3;

nodeinfo = searchNodeByID(neo4jconn,nodeid);

Поиск входящих связей с помощью подключения к базе данных Neo4j и исходного узла nodeinfo. Уточнение поиска путем фильтрации для типа связи knows и для узлов на расстоянии двух или менее.

direction = 'in';
reltypes = {'knows'};

relinfo = searchRelation(neo4jconn,nodeinfo,direction, ...
    'RelationTypes',reltypes,'Distance',2)
relinfo = struct with fields:
       Origin: 3
        Nodes: [4×3 table]
    Relations: [3×5 table]

relinfo - структура, содержащая результаты поиска:

  • Origin - идентификатор узла для указанного исходного узла;

  • Nodes - таблица, содержащая все начальные и конечные узлы для каждой сопоставленной связи;

  • Relations - Таблица, содержащая все сопоставленные отношения

Доступ к таблице узлов.

relinfo.Nodes
ans=4×3 table
         NodeLabels      NodeData                  NodeObject             
         __________    ____________    ___________________________________

    0     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    1     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    2     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    3     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Откройте таблицу отношений.

relinfo.Relations
ans=3×5 table
         StartNodeID    RelationType    EndNodeID    RelationData                RelationObject             
         ___________    ____________    _________    ____________    _______________________________________

    3         1           'knows'           3        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    2         2           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    1         0           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Закройте подключение к базе данных.

close(neo4jconn)

Поиск информации об исходящих связях в базе данных Neo4j ®. Возвращает информацию в виде направленного графика и отображает ребра и узлы графика.

Предположим, что данные графика хранятся в базе данных Neo4j, представляющей социальный район. Эта база данных имеет семь узлов и восемь взаимосвязей. Каждый узел имеет только один уникальный ключ свойства name со значением в диапазоне от User1 через User7. Каждая связь имеет тип knows.

Создание Neo4j подключения к базе данных по URL-адресу http://localhost:7474/db/dataИмя пользователя neo4j, и пароль matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);

Проверьте Message свойство объекта подключения Neo4j neo4jconn. Бланк Message указывает на успешное подключение.

neo4jconn.Message
ans =

     []

Получение исходного узла nodeinfo использование подключения к базе данных Neo4j и идентификатора узла 3.

nodeid = 3;
nodeinfo = searchNodeByID(neo4jconn,nodeid);

Поиск исходящих связей с помощью подключения к базе данных Neo4j и исходного узла nodeinfo. Возврат информации о связи в виде направленного графика с помощью 'DataReturnFormat' аргумент пары имя-значение со значением 'digraph'.

direction = 'out';
relinfo = searchRelation(neo4jconn,nodeinfo,direction, ...
    'DataReturnFormat','digraph')
relinfo = 
  digraph with properties:

    Edges: [2×3 table]
    Nodes: [3×3 table]

Отображение рёбер направленного графика.

relinfo.Edges
ans=2×3 table
       EndNodes       RelationType    RelationData
    ______________    ____________    ____________

    {'3'}    {'4'}     {'knows'}      {1×1 struct}
    {'3'}    {'5'}     {'knows'}      {1×1 struct}

Отображение узлов направленного графика.

relinfo.Nodes
ans=3×3 table
    Name     NodeLabels      NodeData  
    _____    __________    ____________

    {'3'}    {'Person'}    {1×1 struct}
    {'4'}    {'Person'}    {1×1 struct}
    {'5'}    {'Person'}    {1×1 struct}

Закройте подключение к базе данных.

close(neo4jconn)

Входные аргументы

свернуть все

Neo4j подключение к базе данных, указанное как Neo4jConnect объект, созданный с помощью функции neo4j.

Сведения о исходном узле, указанные как Neo4jNode объект или числовой скаляр, обозначающий идентификатор узла.

Типы данных: double

Направление связи, указанное как 'in' для входящего отношения или 'out' для исходящей связи. Связи связаны с указанным исходным узлом.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: relinfo = searchRelation(neo4jconn,nodeinfo,'in','RelationTypes',{'knows'},'Distance',2) возвращает информацию об отношениях для входящих отношений, которые имеют тип отношений knows и находятся на расстоянии не более двух узлов от исходного узла.

Типы отношений, указанные как пара, разделенная запятыми, состоящая из 'RelationTypes' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Для поиска отношений с использованием только одного типа отношений используйте вектор символа или скаляр строки. Для поиска взаимосвязей с использованием многочисленных типов взаимосвязей используйте массив ячеек из символьных векторов или строкового массива.

Пример: 'RelationTypes',{'knows'}

Типы данных: char | cell | string

Расстояние узла, указанное как пара, разделенная запятыми, состоящая из 'Distance' и положительный числовой скаляр. Например, если расстояние узла равно трем, searchRelation возвращает информацию для узлов, которые находятся на расстоянии не более трех узлов от исходного узла nodeinfo.

Пример: 'Distance',3

Типы данных: double

Формат возврата данных, указанный как разделенная запятыми пара, состоящая из 'DataReturnFormat' и значение 'struct' для структуры или 'digraph' для digraph объект. Укажите этот аргумент, чтобы вернуть сведения о связи в виде digraph объект.

Выходные аргументы

свернуть все

Информация о связи в базе данных Neo4j, которая соответствует критериям поиска из исходного узла nodeinfo, возвращено как структура с этими полями.

ОбластьОписание

Origin

Идентификатор исходного узла nodeinfo.

Nodes

Таблица, содержащая информацию о каждом узле в Relations таблица. Nodes таблица содержит следующие переменные:

  • NodeLabels - символьный вектор, обозначающий метку узла для каждого соответствующего узла базы данных;

  • NodeData - Структурный массив, содержащий сведения о узле, например ключи свойств для каждого соответствующего узла базы данных

  • NodeObjectNeo4jNode объект, представляющий каждый сопоставленный узел базы данных

Имена строк в таблице представляют Neo4j идентификаторы соответствующих узлов базы данных.

Relations

Таблица, содержащая информацию о связи для узлов в Nodes таблица. Relations таблица содержит следующие переменные:

  • StartNodeID - Идентификатор узла для начального узла для каждого сопоставленного отношения

  • RelationType - символьный вектор, обозначающий тип связи для каждой сопоставленной связи;

  • EndNodeID - Идентификатор узла для конечного узла для каждого сопоставленного отношения

  • RelationData - Структурный массив, содержащий ключи свойств, связанные с каждой сопоставленной связью

  • RelationObjectNeo4jRelation объект, представляющий каждую сопоставленную связь

Имена строк в таблице являются Neo4j идентификаторами отношений.

Примечание

При использовании 'DataReturnFormat' аргумент пары имя-значение со значением 'digraph', searchRelation функция возвращает информацию о связи в digraph объект. Получающееся digraph объект содержит те же данные, что и digraph объект, созданный при выполнении neo4jStruct2Digraph с помощью функции relinfo выходной аргумент.

Представлен в R2016b