はじめに
先日、DifyにInterSystems IRISをベクトルDBとして使える機能を追加しました。
Dify 1.11.2でマージされたので、せっかくなので使い方を記事にしていきます。
この記事では、DockerでDify + IRISの環境を構築するところまでを紹介します。
「IRISって何?」という方も、.envをすこし変えるだけで動かせるようになっているので、
気軽に試してみてください。
InterSystems IRISとは
「IRIS?聞いたことないな」という方も多いと思います。
実は医療・金融・官公庁といった、
「絶対に止まっちゃダメ」な業界で長年使われてきたDBです。
電子カルテの裏側で動いていたりします。
そんな堅いイメージのあるDBですが、最近ベクトル検索にも対応して、
RAGやAI系のユースケースでも使えるようになりました。
特徴
ざっくり言うと、
- SQL・JSON・オブジェクト・ベクトルを1つに詰め込めて、
- その場でロジックもガンガン動かせて、
- 他システムとのつなぎ合わせもサクッとこなす、
そんな 「全部入りDB」 がIRISです。
DBの枠を超えて、アプリの処理やバッチを内蔵できるから、別途ミドルウェア立てずに済む手軽さが魅力。外部API連携やメッセージングもビルトインで、システム間の「配線作業」が一気に楽になります。
Community Edition(無料版)について
今回使うのは無料のCommunity Editionです。
以下の制限がありますが、個人開発や学習用途には十分です。
また、GUIが用意されているのでブラウザで簡単にデータの確認や操作ができます。
| 項目 | 制限 |
|---|---|
| データ容量 | 10GB |
| CPUコア | 最大20コア |
| 同時接続 | 最大8接続 |
| ライセンス期間 | 13ヶ月 |
※本番環境で使う場合は製品版ライセンスが必要です
必要なもの
- Docker / Docker Compose
- Git
- 普通のスペックのPCでOK
環境構築
1. Difyのリポジトリをクローン
git clone https://github.com/langgenius/dify.git
cd dify/docker
2. 環境変数ファイルを準備
.env.exampleをコピーして.envを作成します。
cp .env.example .env
3. .envを編集してIRISを有効化
.envファイルを開いて、VECTOR_STOREの設定を変更します。
変更前(デフォルト)
VECTOR_STORE=weaviate
変更後
VECTOR_STORE=iris
これだけです。
IRISの接続情報はデフォルト値が設定されているので、
ローカルで試すだけなら他の設定は変更不要です。
IRISの接続設定を変更したい場合(クリックで展開)
.envファイル内の以下の項目で設定できます。
# InterSystems IRIS configuration, only available when VECTOR_STORE is `iris`
IRIS_HOST=iris
IRIS_SUPER_SERVER_PORT=1972
IRIS_WEB_SERVER_PORT=52773
IRIS_USER=_SYSTEM
IRIS_PASSWORD=Dify@1234
IRIS_DATABASE=USER
IRIS_SCHEMA=dify
IRIS_CONNECTION_URL=
IRIS_MIN_CONNECTION=1
IRIS_MAX_CONNECTION=3
IRIS_TEXT_INDEX=true
IRIS_TEXT_INDEX_LANGUAGE=en
IRIS_TIMEZONE=UTC
初期パスワードは、初回起動時にスクリプトで自動設定をしています(Dify@1234)
4. 起動
docker compose up -d
初回はイメージのダウンロードがあるので、数分かかります。
コーヒーでも飲みながら待ちましょう☕
5. 起動確認
すべてのコンテナが起動したことを確認します。
docker compose ps
irisコンテナがリストに含まれていて、STATUSがUpになっていればOKです。
docker % docker compose ps --format "table {{.Name}}\t{{.Service}}\t{{.Status}}"
NAME SERVICE STATUS
docker-api-1 api Up 6 hours
docker-db_postgres-1 db_postgres Up 6 hours (healthy)
docker-nginx-1 nginx Up 6 hours
docker-plugin_daemon-1 plugin_daemon Up 6 hours
docker-redis-1 redis Up 6 hours (healthy)
docker-sandbox-1 sandbox Up 6 hours (healthy)
docker-ssrf_proxy-1 ssrf_proxy Up 6 hours
docker-web-1 web Up 6 hours
docker-worker-1 worker Up 6 hours
docker-worker_beat-1 worker_beat Up 6 hours
iris iris Up 6 hours <-- これ
Difyにアクセス
ブラウザで以下のURLにアクセスします。
http://localhost/
初回は管理者アカウントの作成画面が表示されます。
メールアドレスとパスワードを設定してください。
IRISが使われていることを確認する
ナレッジベースを作成
- Difyにログイン
- 「ナレッジ」→「ナレッジを作成」
- 適当なテキストファイルやPDFをアップロード
- インデックス方法は 「高品質」 を選択します
インデックス方法に「高品質」を利用するには外部のLLM(OpenAIやローカルLLM(LM Studioとか))の設定も必要なので、Dify公式ドキュメントか他のQiitaの記事で調べてみてください。
処理が完了すれば、IRISにベクトルデータが保存されています🎉
Difyにはベクトル検索の他に全文検索やハイブリッド検索の機能もありますが、少しバグがあって全文検索やハイブリッド検索が正しく機能しません。。。
(2026/01/21時点)
すでに修正をPRとして提出したので、そのうちマージされるはず![]()
IRIS 管理ポータルで確認(おまけ)
IRISにはWebベースの管理画面があります。
デフォルトの設定では、以下URLでIRISの管理画面にアクセスできます。
http://localhost:52773/csp/sys/UtilHome.csp?$NAMESPACE=USER
- ユーザー名:
_SYSTEM - 初期パスワード:
Dify@1234
ログインしたら、「システムエクスプローラ」→「SQL」をクリックすると、SQLでデータの確認や操作ができる画面が表示されます。
スキーマにdifyを指定すると、Difyによって登録されたテーブルが「テーブル」の下に表示されます。
そのテーブルを選択して、「テーブルを開く」をクリックすると、別窓でデータが表示されます。
ちゃんとアップロードしたドキュメントのチャンクが保存されていますね。
うまく動かないときは
IRISコンテナが起動しない
CPUコア数が多いマシンでは、Community Editionの制限(20コア)に引っかかる場合があります。
docker-compose.ymlのIRISサービスに以下を追加してください。
services:
iris:
# 既存の設定...
cpuset: "0-19"
まとめ
DifyでInterSystems IRISをベクトルDBとして使う環境を構築しました。
今回のポイント
-
.envのVECTOR_STORE=irisに変えるだけ - Community Editionは無料で使える
- 管理ポータルでデータを確認できる
次回は、実際にRAGアプリを作ってチャットボットを動かしてみる予定です。
質問や「ここ動かない!」などあれば、コメントで気軽にどうぞ💬
参考リンク
※この記事は個人の見解であり、所属組織の公式見解ではありません。





