logo

【入門】とりあえずNeo4j+Docker Composeの構築と実行まで行う方法

【入門】とりあえずNeo4j+Docker Composeの構築と実行まで行う方法

はじめに

Neo4jのコンテナを作成し、簡単なクエリを実行するまでを解説します。

構築

最終的なディレクトリ構成です。

.
├── neo4j/
│   ├── conf/ # 設定
│   ├── data/ # データ永続化
│   └── logs/ # ログ
└── docker-compose.yml

docker-compose.yml

services:
  neo4j:
    image: neo4j:community
    volumes:
      - ./neo4j/conf:/conf
      - ./neo4j/data:/data
      - ./neo4j/logs:/logs
    ports:
      - 7474:7474 # HTTP
      - 7687:7687 # Bolt
    environment:
      - NEO4J_AUTH=none

image

imageについては大まかにneo4j:communityneo4j:enterpriseがあります。
今回はコンテナの作成のみなのでcommunityを利用します。

volumes

  • conf: 設定ファイルを配置するディレクトリ
    本記事では使いませんが、neo4j.confなどの設定ファイルを置くことができます。
  • data: データの永続化を行うディレクトリ
  • logs: ログの出力を行うディレクトリ

ports

  • 7474: HTTPアクセス用のポート
    localhost:7474にブラウザで管理画面にアクセスできます。
    HTTP APIでのリクエストも同様のポートで行います。

neo4j-browser-access

environment

  • NEO4J_AUTH=none: UsernamePasswordによる認証無しでアクセス・実行を行うための環境変数

実行

ブラウザ

localhost:7474にブラウザでアクセスして、直接クエリを入力して実行

Nodeを作成

CREATE (n)を実行

neo4j-browser-create

Nodeを取得

MATCH (n) RETURN nを実行

neo4j-browser-match

HTTP API

localhost:7474にCurlでAPIを飛ばしてクエリを実行

Nodeを作成

$ curl -X POST http://localhost:7474/db/neo4j/tx/commit \
  -H "Content-Type: application/json" \
  -d '{"statements":[{"statement":"CREATE (n)"}]}'
{"results":[{"columns":[],"data":[]}],"errors":[],"lastBookmarks":["FB:kcwQDTqPx64sTr+eTW7nRw/oHhiQ"]}

Nodeを取得

$ curl -X POST http://localhost:7474/db/neo4j/tx/commit \
  -H "Content-Type: application/json" \
  -d '{"statements":[{"statement":"MATCH (n) RETURN n"}]}'
{"results":[{"columns":["n"],"data":[{"row":[{}],"meta":[{"id":1,"elementId":"4:0d3a8fc7-ae2c-4ebf-9e4d-6ee7470fe81e:1","type":"node","deleted":false}]}]}],"errors":[],"lastBookmarks":["FB:kcwQDTqPx64sTr+eTW7nRw/oHhiQ"]}

まとめ

Docker Composeを使ったNeo4jのコンテナ作成と、ブラウザやHTTP APIを使ったクエリの実行を行いました。

グラフDBの使い方は全然学習ができていないので、これから学んでいこうと思います。