exponenta event banner

Изучение структуры базы данных Graph

В этом примере показано, как перейти к графу и исследовать его структуру с помощью интерфейса MATLAB ® к Neo4j ®. Дополнительные сведения об интерфейсе MATLAB для Neo4j см. в разделе Рабочий процесс базы данных Graph для интерфейсов базы данных Neo4j.

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

На локальном компьютере размещена база данных Neo4j с номером порта 7474Имя пользователя neo4j, и пароль matlab. На этом рисунке представлено визуальное представление данных в базе данных.

Подключиться к базе данных Neo4j

Создание объекта Neo4j соединения neo4jconn с использованием 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 =

     []

Изучение структуры всего графика

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

nlabels = nodeLabels(neo4jconn)
nlabels = 1×1 cell array
    {'Person'}

Поиск всех типов отношений в базе данных Neo4j.

reltypes = relationTypes(neo4jconn)
reltypes = 1×1 cell array
    {'knows'}

Найдите ключи свойств в базе данных Neo4j.

propkeys = propertyKeys(neo4jconn)
propkeys = 15×1 cell array
    {'Name'       }
    {'property'   }
    {'title'      }
    {'Description'}
    {'EndNodes'   }
    {'Location'   }
    {'EndDate'    }
    {'Address'    }
    {'Project'    }
    {'Department' }
    {'StartDate'  }
    {'Title'      }
    {'Date'       }
    {'Weight'     }
    {'name'       }

Поиск узлов

Поиск всех узлов с меткой узла Person. nodesinfo выходной аргумент содержит метки узлов, данные узлов и Neo4jNode объектов для каждого соответствующего узла.

nlabel = 'Person';

nodesinfo = searchNode(neo4jconn,nlabel)
nodesinfo=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]

Поиск узла с идентификатором узла 2. nodeinfo выходной аргумент содержит идентификатор узла, данные узла и метки узла для узла с идентификатором узла 2.

nodeid = 2;

nodeinfo = searchNodeByID(neo4jconn,nodeid)
nodeinfo = 
  Neo4jNode with properties:

        NodeID: 2
      NodeData: [1×1 struct]
    NodeLabels: 'Person'

Поиск отношений

Поиск входящих типов отношений, принадлежащих узлу nodeinfo.

nodereltypes = nodeRelationTypes(nodeinfo,'in')
nodereltypes = 1×1 cell array
    {'knows'}

Поиск степени всех входящих отношений, принадлежащих узлу nodeinfo.

degree = nodeDegree(nodeinfo,'in')
degree = struct with fields:
    knows: 1

Поиск связи с идентификатором узла 4.

relationid = 4;

relationinfo = searchRelationByID(neo4jconn,relationid)
relationinfo = 
  Neo4jRelation with properties:

      RelationID: 4
    RelationData: [1×1 struct]
     StartNodeID: 3
    RelationType: 'knows'
       EndNodeID: 5

Поиск всех входящих связей, принадлежащих узлу nodeinfo. relinfo выходной аргумент содержит данные о начальном и конечном узлах и всех сопоставленных взаимосвязях из исходного узла.

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

Извлечь весь график

Извлечение всего графика с помощью меток узлов nlabels.

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

graphinfo содержит данные узла для всех начальных и конечных узлов для каждого сопоставленного отношения. graphinfo также содержит данные отношения для каждого сопоставленного отношения.

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

close(neo4jconn)

См. также

| | | | | | | | |

Связанные темы

Внешние веб-сайты