こんにちは!今回は、Windows環境でPostgreSQLをインストールし、ベクトル検索が可能になる拡張機能「PGVector」を使えるようにするまでの手順を、わかりやすく解説します。
1. PostgreSQLのインストール
🔗 公式サイトからインストーラーをダウンロード
- PostgreSQL公式ダウンロードページ にアクセス
- 「Download the installer」から EDB版インストーラー を選択
- Windows用のインストーラー(例:
postgresqpostgresql-17.6-1-windows-x64.exe
)をダウンロード

🛠 インストール手順
- インストーラーを実行
- コンポーネント選択画面では、pgAdmin にチェックが入っていることを確認
- データベースクラスタの初期設定(パスワード、ポート番号など)を入力
- インストール完了後、pgAdminが起動することを確認

2. pgAdminでPostgreSQLに接続
- pgAdminを起動
- 初回起動時にマスターパスワードを設定
- 左側の「Servers」→「PostgreSQL」→「Databases」から接続確認
- デフォルトの
postgres
データベースを開いておく
3. PGVectorの導入(Windows用バイナリ)
🔽 ダウンロード
- vector.v0.8.0-pg17.6.zip をダウンロード
📂 ファイルを配置
ZIPを解凍し、以下のファイルをPostgreSQLのインストールディレクトリに配置します:
💡 上書き確認が出たら「Yes to all」を選択してください。

🔄 PostgreSQLを再起動
- サービスから「PostgreSQL 17」を再起動するか、以下のコマンドを使用:
pg_ctl restart -D "C:\Program Files\PostgreSQL\17\data"
4. データベースとユーザーの作成
🎯 目的
- データベース名:
balthasar
- ユーザー名:
balthasar_user
- パスワード:例:
securepass123
🧑💻 SQL手順
-- ユーザーの作成 postgres=# CREATE USER balthasar_user WITH PASSWORD 'securepass123'; CREATE ROLE -- データベースの作成 postgres=# CREATE DATABASE balthasar OWNER balthasar_user; CREATE DATABASE -- 権限の付与(必要に応じて) postgres=# GRANT ALL PRIVILEGES ON DATABASE balthasar TO balthasar_user; GRANT -- 拡張機能の有効化(データベースごとに必要) postgres=# \c balthasar データベース"balthasar"にユーザー"postgres"として接続しました。 balthasar=# CREATE EXTENSION vector; CREATE EXTENSION -- 有効化の確認 postgres=# SELECT extname, extrelocatable, extversion FROM pg_extension WHERE extname = 'vector'; extname | extrelocatable | extversion ---------+----------------+------------ vector | t | 0.8.0 (1 行)
5. PGVectorの動作確認
balthasar
データベースに接続し、以下のSQLを実行:
-- テーブル作成 balthasar=> CREATE TABLE items ( id serial PRIMARY KEY, embedding vector(3) ); CREATE TABLE -- データ挿入 balthasar=> INSERT INTO items (embedding) VALUES ('[1, 1, 1]'), ('[2, 2, 2]'), ('[1, 1, 2]'); INSERT 0 3 -- 類似度検索 balthasar=> SELECT * FROM items ORDER BY embedding <-> '[1, 1, 1]'; id | embedding ----+----------- 1 | [1,1,1] 3 | [1,1,2] 2 | [2,2,2] (3 行)
✅ <->
演算子で類似度検索ができれば成功です!
6. トラブルシューティング
問題 | 解決策 |
---|---|
vector 拡張が使えない | バイナリが正しく配置されているか確認 |
ユーザーで接続できない | パスワードや権限を確認 |
pgAdminで接続できない | ファイアウォールやpg_hba.conf の設定を確認 |
🎉 まとめ
- PostgreSQL + PGVectorでベクトル検索が可能に!
- Windows環境でも非公式バイナリを使えば簡単に導入できる
- 独自データベースとユーザーを作成してセキュアな運用が可能