0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerコンテナを利用したNeo4jの環境構築とAPOCのインストール手順

Posted at

要旨

日本語データでGraphRAGを動かすのに挫折したので、次の矛先として
ナレッジグラフを使ったRAGを実装した事例であるこちらの記事を、まったりと追試していく。
https://qiita.com/satken2/items/ea3ddc5f273d43cd63d4?utm_source=chatgpt.com

まずは以下の内容でNeo4jの準備から。

・Neo4jをDockerコンテナで起動する手順を記述する
・単一のコンテナで構成されるが、コンテナ起動時のオプションを明示的に記録するために敢えてdocker composeを利用する

Neo4jのDockerコンテナを起動する

Docker Composeによる環境構築

Neo4jをDockerコンテナで運用する際、docker runコマンドでも起動可能だが、以下の理由からdocker composeを利用する。

  • 起動時のオプション(環境変数、ポート、ボリュームなど)を明示的に記録できる。
  • 複数のサービスを一括管理する準備が容易になる。

以下は、docker-compose.ymlの例である。

dservices:
  neo4j:
    image: neo4j:latest
    ports:
      - "7474:7474"
      - "7687:7687"
    environment:
      NEO4J_AUTH: "neo4j/[8文字以上のパスワード]"
      NEO4J_apoc_export_file_enabled: "true"
      NEO4J_apoc_import_file_enabled: "true"
      NEO4J_apoc_import_file_use__neo4j__config: "true"
      NEO4J_dbms_security_procedures_unrestricted: "apoc.*"
    ulimits:
      nofile:
        soft: 40000
        hard: 40000
    volumes:
      - ./data:/data
      - ./logs:/logs
      - ./conf:/conf
      - ./plugins:/plugins

docker-compose.ymlを保存後、以下のコマンドでコンテナを起動する。

docker compose up -d

起動後、http://localhost:7474にアクセスし、管理画面が表示されればOK。
管理画面にはdocker-compose.yamlで設定したID「neo4j」とそのパスワードでログインする。

動作確認

テストデータの登録

起動したNeo4jにテストデータを登録する。

  1. ブラウザ管理画面で以下のCypherクエリを実行し、ノードとリレーションシップを作成する。

    CREATE (p:Person {name: "Alice", age: 30})-[:KNOWS]->(p2:Person {name: "Bob", age: 25})
    
  2. 登録したデータを確認する。

    MATCH (n) RETURN n
    

データ永続化の確認

コンテナを再起動してデータが永続化されているか確認する。

  1. コンテナを停止する。

    docker compose down
    
  2. コンテナを再起動する。

    docker compose up -d
    
  3. 再びCypherクエリを実行し、データが存在することを確認する。

    MATCH (n) RETURN n
    

APOCのインストール

APOCとは

APOC (Awesome Procedures On Cypher) は、Neo4jにおける拡張機能の一つである。データ操作、外部データの取り込み、ランダムグラフ生成など、Neo4jの基本機能を拡張するプロシージャを提供する。
製品の標準機能として取り込まれた拡張機能も多々あるようで、とりあえずコアのAPOC入れておいたほうがいい、ということらしい。

APOCバイナリのインストール

コンテナで起動したNeo4jにはAPOCのバイナリが含まれていないため、手動でインストールする必要がある。

  1. Neo4jのバージョンを確認する。

    docker exec -it neo4j-neo4j-1 neo4j --version
    
  2. Neo4jのバージョンに対応するAPOCをGitHubリリースページからダウンロードする。

    wget https://github.com/neo4j/apoc/releases/download/<version>/apoc-<version>-core.jar
    
  3. ダウンロードしたファイルをホストマシンのpluginsディレクトリに配置する。

    mv apoc-<version>-core.jar ./plugins/
    
  4. コンテナを再起動する。

    docker compose down
    docker compose up -d
    
  5. Neo4jブラウザで以下のクエリを実行し、APOCが利用可能になっていることを確認する。

    CALL apoc.help('apoc')
    

感想

ブラウザの管理画面で直にSQL…ではなくCypherクエリを実行できること、その結果がなんというか昇順に表示されていくことなど、RDBMSしか知らない身からするとかなり風変わり(同時にめちゃくちゃ動作確認しやすくて好ましい)なインターフェースをしているように思う。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?