mcpField
Z
zvec

zvec

github.com/zvec-aiデータ・データベース21102 回インストール29 週間前に更新
リポジトリ

zvec について

zvec は、RAG、セマンティック検索、ハイブリッド検索、マルチモーダル検索向けの Python と Node.js API を備えたベクトル検索ライブラリです。密ベクトルと疎ベクトル、型付きフィールドに対応し、データ規模に応じてインデックスを選べます。

主な機能

  1. 01Python と Node.js の API
  2. 02密ベクトルと疎ベクトルに対応
  3. 03単一・複数ベクトル検索
  4. 04スカラーフィルターとのハイブリッド検索
  5. 05FLAT、HNSW、IVF インデックス

活用シーン

  1. 01RAG システム向けの文書検索
  2. 02意味的類似度によるテキスト検索
  3. 03ベクトル検索とキーワード・条件指定の併用
  4. 04画像とテキストの横断検索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/zvec-ai/zvec-agent-skills --skill zvec

インストール後、Claude Code で/zvecを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

api-cheatsheet.md
configuration.md
data-model.md
embedding.md
reranker.md
troubleshooting.md
collection-management/
python.md
typescript.md
data-operations/
python.md
typescript.md
hybrid-search/
python.md
typescript.md
multimodal-search/
python.md
typescript.md
quick-start/
python.md
typescript.md
rag-system/
python.md
typescript.md
vector-search/
python.md
typescript.md

詳細

使用方法

始める前に、以下の点を確認してください:
  1. 開発言語:Python または Node.js

    • Python:pip install zvec を使用します
    • Node.js:npm install @zvec/zvec を使用します
  2. ユースケース:

    • RAG ドキュメント検索システム
    • セマンティック検索
    • マルチモーダル検索(画像+テキスト)
    • ハイブリッド検索(キーワード+セマンティック検索)
  3. データ規模:

    • < 100k:FLAT インデックスを使用します(正確な検索)
    • 100k-10M:HNSW インデックスを使用します(推奨されるデフォルト)
    • 10M:IVF インデックスを使用します(メモリを最適化)

選択ワークフロー
  • ユーザーがベクトル検索機能を必要としている
    • 開発言語を選択します(Python/Node.js)
    • ユースケースを特定します
      • RAG システム → 単一ベクトル検索+ドキュメントチャンク管理を使用します
      • E コマース検索 → ハイブリッド検索(ベクトル+フィルター)を使用します
      • マルチモーダル → マルチベクトル検索+重み付けランキングを使用します
    • スキーマを設計します(ベクトルフィールド+スカラーフィールド)
    • インデックスの種類を選択します(HNSW/FLAT/IVF)
    • データ同期戦略を実装します
デフォルトの推奨事項
  • create_and_open() / ZVecCreateAndOpen() を使用して Collection を作成します
  • デフォルトの距離指標としてコサイン類似度(COSINE)を使用します
  • 密ベクトルには FP32 型を使用します
  • フィルターフィールドに InvertIndexParam インデックスを作成します
検証チェックリスト
  • ベクトルの次元数が Schema の定義と一致している
  • スカラーフィールドの型が正しい
  • フィルター条件の構文が正しい
  • 大量のデータを書き込んだ後に optimize() を呼び出す

クイックスタート

Python:

import zvec

# Create Collection
schema = zvec.CollectionSchema(
    name="my_collection",
    fields=[
        zvec.FieldSchema(name="title", data_type=zvec.DataType.STRING),
    ],
    vectors=[
        zvec.VectorSchema(
            name="embedding",
            data_type=zvec.DataType.VECTOR_FP32,
            dimension=768,
            index_param=zvec.HnswIndexParam(
                metric_type=zvec.MetricType.COSINE
            ),
        ),
    ],
)

collection = zvec.create_and_open("./my_data", schema)

# Insert document
collection.upsert(zvec.Doc(
    id="doc_1",
    vectors={"embedding": [0.1] * 768},
    fields={"title": "Hello World"},
))

# Search
results = collection.query(
    vectors=zvec.VectorQuery(
        field_name="embedding",
        vector=[0.1] * 768,
    ),
    topk=10,
)

Node.js:

import { ZVecCreateAndOpen, ZVecCollectionSchema, ZVecFieldSchema, ZVecVectorSchema, ZVecDataType, ZVecHnswIndexParams, ZVecMetricType } from "@zvec/zvec";

const schema = new ZVecCollectionSchema({
  name: "my_collection",
  fields: [new ZVecFieldSchema({ name: "title", dataType: ZVecDataType.STRING })],
  vectors: [new ZVecVectorSchema({
    name: "embedding",
    dataType: ZVecDataType.VECTOR_FP32,
    dimension: 768,
    indexParams: new ZVecHnswIndexParams({ metricType: ZVecMetricType.COSINE }),
  })],
});

const collection = ZVecCreateAndOpen("./my_data", schema);

コアコンセプト

データモデル

Collection

  • リレーショナルデータベースのテーブルに似た、データを保存、整理、クエリするためのコンテナーです
  • 各 Collection には、構造を定義する Schema があります
  • 各 Collection は、ディスク上の専用ディレクトリに個別に永続化されます

Document

  • リレーショナルテーブルの行に似た、データストレージの基本単位です
  • 次の 3 つの主要な要素で構成されます:
    • id:一意の文字列識別子
    • vectors:名前付きベクトルのコレクション(密ベクトルと疎ベクトルをサポート)
    • fields:名前付きスカラーフィールドのコレクション

Schema

  • 動的 Schema:スカラーフィールドとベクトルはいつでも追加または削除できます
  • 厳密な型システム:各フィールドには DataType の宣言が必要です
ベクトルの種類

密ベクトル

  • 固定長の実数値埋め込み
  • 型:VECTOR_FP16、VECTOR_FP32、VECTOR_INT8
  • 適した用途:セマンティック理解、コンテキストの把握

疎ベクトル

  • ゼロ以外の次元が少数のみの高次元表現
  • 型:SPARSE_VECTOR_FP32、SPARSE_VECTOR_FP16
  • 適した用途:キーワードマッチング、BM25 スコアリング
インデックスの種類
インデックスの種類特徴ユースケース
FLAT総当たり検索、正確な結果小規模データ(<100k)
HNSW近似最近傍探索、グラフ構造大規模データ(推奨されるデフォルト)
IVF転置ファイルインデックス非常に大規模なデータ

利用可能なトピック

Python
Node.js
全般

利用可能なトピック

Python
Node.js
全般

コメント