searchGraph

Поиск подграфика или целого графика в Neo4j базе данных

Описание

пример

graphinfo = searchGraph(neo4jconn,criteria) возвращает информацию о графике на основе критериев поиска с помощью Neo4j® подключение к базе данных. Вы можете искать подграфик или весь график.

пример

graphinfo = searchGraph(neo4jconn,criteria,'DataReturnFormat','digraph') возвращает информацию о графике как digraph объект.

Примеры

свернуть все

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

Создайте 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 =

     []

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

nlabel = {'Person'};

graphinfo = searchGraph(neo4jconn,nlabel)
graphinfo = struct with fields:
        Nodes: [7×3 table]
    Relations: [8×5 table]

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

  • Все начальные и конечные узлы, которые обозначают каждое совпадающее соотношение

  • Все совпадающие отношения

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

graphinfo.Nodes
ans=7×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]
    4     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    5     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    9     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Доступ к ключам свойств для первого узла.

graphinfo.Nodes.NodeData{1}
ans = struct with fields:
    name: 'User1'

Доступ к таблице отношений.

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

    1         0           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    0         0           'knows'           2        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    3         1           'knows'           3        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    2         2           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    5         3           'knows'           4        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    4         3           'knows'           5        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    6         5           'knows'           4        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    8         5           'knows'           9        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Доступ к ключам свойств для первого отношения. Первая связь не имеет ключей свойств.

graphinfo.Relations.RelationData{1}
ans = struct with no fields.


Поиск по графику для всех меток узлов в базе данных.

allnodes = nodeLabels(neo4jconn);

graphinfo = searchGraph(neo4jconn,allnodes);

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

close(neo4jconn)

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

Создайте 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 =

     []

Найдите на графике тип связи 'knows' использование Neo4j подключения к базе данных.

reltype = {'knows'};

graphinfo = searchGraph(neo4jconn,reltype)
graphinfo = struct with fields:
        Nodes: [7×3 table]
    Relations: [8×5 table]

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

  • Все начальные и конечные узлы, которые обозначают каждое совпадающее соотношение

  • Все совпадающие отношения

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

graphinfo.Nodes
ans=7×3 table
         NodeLabels      NodeData                  NodeObject             
         __________    ____________    ___________________________________

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

Доступ к таблице отношений.

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

    0         0           'knows'           2        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    1         0           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    2         2           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    3         1           'knows'           3        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    4         3           'knows'           5        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    5         3           'knows'           4        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    6         5           'knows'           4        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    8         5           'knows'           9        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Поиск по графику для всех типов отношений в базе данных.

allreltypes = relationTypes(neo4jconn);

graphinfo = searchGraph(neo4jconn,allreltypes);

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

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 =

     []

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

nlabel = "Person";
graphinfo = searchGraph(neo4jconn,nlabel, ...
    'DataReturnFormat','digraph');

Отображение ребер ориентированного графа.

graphinfo.Edges
ans=8×3 table
       EndNodes       RelationType    RelationData
    ______________    ____________    ____________

    {'0'}    {'1'}     {'knows'}      {1×1 struct}
    {'0'}    {'2'}     {'knows'}      {1×1 struct}
    {'1'}    {'3'}     {'knows'}      {1×1 struct}
    {'2'}    {'1'}     {'knows'}      {1×1 struct}
    {'3'}    {'4'}     {'knows'}      {1×1 struct}
    {'3'}    {'5'}     {'knows'}      {1×1 struct}
    {'5'}    {'4'}     {'knows'}      {1×1 struct}
    {'5'}    {'9'}     {'knows'}      {1×1 struct}

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

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

    {'0'}    {'Person'}    {1×1 struct}
    {'1'}    {'Person'}    {1×1 struct}
    {'2'}    {'Person'}    {1×1 struct}
    {'3'}    {'Person'}    {1×1 struct}
    {'4'}    {'Person'}    {1×1 struct}
    {'5'}    {'Person'}    {1×1 struct}
    {'9'}    {'Person'}    {1×1 struct}

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

close(neo4jconn)

Входные параметры

свернуть все

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

Критерии поиска, заданные как массив ячеек из векторов символов или строковых массивов. Для поиска по узлам задайте одну или несколько меток узлов как векторы символов в массиве ячеек. Чтобы искать по отношениям, задайте один или несколько типов отношений как векторы символов в массиве ячеек. Или задайте строковые массивы для нескольких меток узлов или типов отношений.

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

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

свернуть все

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

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

Nodes

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

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

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

  • NodeObjectNeo4jNode объект для каждого соответствующего узла базы данных

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

Если criteria содержит метки узлов, выход автоматически сортируется по StartNodeID и Label.

Relations

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

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

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

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

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

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

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

Если criteria содержит типы отношений, выход автоматически сортируется по RelationID.

Примечание

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

Введенный в R2016b