【ぴーじーべくたー】

pgvector とは?

💡 いつものPostgreSQLが、AI検索エンジンに変身する魔法の拡張機能
📌 このページのポイント
pgvector — PostgreSQL + ベクトル検索 PostgreSQL テーブル・SQL・トランザクション + pgvector 拡張 vector型・距離関数・インデックス ベクトル類似検索 SELECT * ORDER BY v <-> q コサイン類似度 ユークリッド IVFFlat HNSW 類似度の高い順に結果を返却 既存のPostgreSQLにCREATE EXTENSIONするだけで利用開始
pgvectorのイメージ
ひよこ ひよこ

pgvectorって、PostgreSQLと何が違うの?

ペンギン先生 ペンギン先生

pgvectorはPostgreSQLの「拡張機能」なんだ。PostgreSQLという既存のデータベースに「ベクトル検索」という新しい能力を追加するプラグインみたいなものだよ。家にコンセントを増設するようなイメージだね

ひよこ ひよこ

ベクトル検索って何に使うの?

ペンギン先生 ペンギン先生

たとえば「この画像に似た画像を探して」とか「この文章と意味が近い文章を見つけて」みたいな検索ができるんだ。AIが文章や画像を数値の列(ベクトル)に変換して、その数値が近いものを探す仕組みだよ

ひよこ ひよこ

わざわざ専用のデータベースを使わなくてもいいの?

ペンギン先生 ペンギン先生

そこがpgvectorの最大の魅力だね。もうPostgreSQLを使っているなら、CREATE EXTENSIONするだけで使い始められる。SQLトランザクションもそのまま使えるから、通常のデータとベクトルデータを一つのDBで管理できるんだ

ひよこ ひよこ

大規模なデータでも大丈夫?

ペンギン先生 ペンギン先生

HNSWインデックスを使えば数百万件レベルでも高速に検索できるよ。ただし数十億件を超えるような超大規模だと専用のベクトルDBに分があることもある。規模と運用コストのバランスで選ぶのがポイントだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「pgvector」って出てきたら「PostgreSQLベクトル検索ができる拡張機能」と思えればだいたいOK!
📖 おまけ:英語の意味
「pgvector」 = PostgreSQLベクトル拡張
💬 pgはPostgreSQLの略称、vectorはベクトル(方向と大きさを持つ数値の列)のこと。PostgreSQLにベクトル演算を足すという意味がそのまま名前になっているよ
← 用語集にもどる