searchGraph

Ищите подграф или целый график в базе данных Neo4j

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

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

neo4jconn = neo4j(url,username,password);

Проверяйте Message свойство объекта neo4jconn связи Neo4j. Пустой 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]

Ключи свойства Access для первого узла.

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]

Ключи свойства Access для первого отношения. Первое отношение не имеет никаких ключей свойства.

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


Ищите график все метки узла в базе данных.

allnodes = nodeLabels(neo4jconn);

graphinfo = searchGraph(neo4jconn,allnodes);

Закройте соединение с базой данных.

close(neo4jconn)

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

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

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

neo4jconn = neo4j(url,username,password);

Проверяйте Message свойство объекта neo4jconn связи Neo4j. Пустой 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 с помощью http://localhost:7474/db/data URL, имя пользователя neo4j, и пароль matlab.

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

Проверяйте Message свойство объекта neo4jconn связи Neo4j. Пустой 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 таблица. Nodes таблица содержит эти переменные:

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

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

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

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

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

Relations

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

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

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

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

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

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

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

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

Примечание

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

Введенный в R2017b