PyCon JP 2026

自作DBで理解するベクトル検索のしくみ

概要

自作のPython製リレーショナルDB「KeiPyDB」にベクトル検索機能を組み込んだ過程を辿りながら、ベクトル検索の仕組みを見ていきます。

詳細

  1. 自己紹介(2分)

  2. ベクトル検索とは(3分)
    キーワード検索との違い。テキストをベクトルに変換して距離で比較するというベクトル検索の基本的な考え方を紹介

  3. ベクトルとコサイン類似度計算(7分)
    高校数学のベクトルの概要を振り返りながら、Pythonコードで類似度計算する。ユークリッド距離や内積といった他の手法との違い
  4. 自作DBにベクトル検索を追加(8分)
    DBにベクトル検索を追加するためのステップを、pgvectorやsqlite-vecといった既存の実装にも触れながら、実際のコードとともに解説
  5. Appendix: HNSWインデックスについて。(5分)
    線形スキャンの計算量とHNSWインデックス。Small World現象を出発点に、HNSWがなぜ高速に似たデータを見つけられるのかを簡単に紹介
  6. まとめと質疑応答(5分)

Tell us about your own experience with this topic

業務でベクトル検索のキャッチアップが必要になったことをきっかけに、pgvectorの実装やHNSWの原論文を読み、仕組みを理解しました。最近では、生成AIにコードを書かせることが主流になりつつあります。しかし、だからこそ、「なぜこのコードで動くのか」を理解することが大切だと考え、実際に自作DBにベクトル検索機能(ベクトルカラム)を組み込みました。

What discussions can you have with attendees through this talk?

  • ベクトル検索が適する場面・適さない場面について
  • 参加者自身のプロジェクトでベクトル検索をどう使えそうか
  • キーワード検索とのハイブリッド検索をどのように組み合わせるか
The speaker's profile picture
k-kamijo

塾選を運営する株式会社DeltaX(デルタエックス)のエンジニアです。
主に、バックエンド、CI/CDなどを担当しています。

Githubレポジトリ:https://github.com/kei-kmj