インデックスと検索
index bundle、モデル互換性、ブラウザーの検索経路
取り込みで作られるもの
vis ingest <dir> は jpg、png、webp を走査し、画像を埋め込み、サムネイルを生成します。data/indexes/<name>/ の index bundle は次の 3 要素です。
meta.json:modelId、dim、作成時刻と、写真ごとの ID・元ファイル相対パス・サムネイル・確定タグ・利用許諾/出典/作者情報embeddings.bin: ベクトルを行方向に連結した little-endianFloat32データthumbs/: 表示用サムネイル
この bundle がタグを含む正本です。Qdrant はそこから同期する派生コピーであり、逆方向に取り込みません。再取り込み時は同じ ID の確定タグを引き継ぎますが、既存 bundle が壊れている場合はタグを失う上書きを避けるため処理を停止します。
モデルと次元はセットです
ベクトルはモデルごとに意味が異なります。meta.json の modelId と dim が一致しないベクトル・問い合わせベクトルを比較してはいけません。モデルを変えることは設定値を変えるだけではなく、コレクション全体の再インデックスを意味します。既定は Xenova/siglip-base-patch16-224、768 次元で、各ベクトルは L2 正規化されます。
テキスト・画像・類似検索
テキストは SigLIP の text tower、外部画像は vision tower、既存 item ID は保存済みベクトルを使います。いずれも同じ空間のベクトルとして VectorStore.search に渡し、上位 k 件をコサイン類似度で返します。既定の in-memory 実装は総当たりの正確な検索です。検証では 20,000 ベクトルで約 16 ms であり、この規模では ANN の利点は小さいとしています。
ブラウザーデモ
デモはサーバーを持たず、bundle をブラウザーへ読み込みます。画像ベクトルはあらかじめあるため、初回のテキスト検索・分類・語彙スコア時だけ text tower(約 100 MB)を遅延取得します。推論は Web Worker で動き、ONNX Runtime の WASM もアプリから配信されるため、実行時に第三者 CDN へ問い合わせません。ギャラリー閲覧だけならモデルのダウンロードはありません。