このドキュメントでは、OceanBaseデータベースがサポートするベクトルインデックスの種類とその特徴について説明します。
インデックスタイプ
OceanBaseデータベースは、HNSWシリーズとIVFシリーズを含む密ベクトルインデックスをサポートしています。以下の説明を容易にするため、簡単に密ベクトルインデックスと呼びます。
インデックスタイプ |
説明 |
|---|---|
| HNSW | インデックス列の最大次元は4,096です。HNSWインデックスはメモリ内インデックスであり、メモリに完全にロードする必要があります。 |
| HNSW_SQ | HNSW_SQインデックスは、HNSWインデックスと同等の構築速度、検索性能、再現率を提供しますが、総メモリ使用量は約半分から3分の1に削減されます。 |
| HNSW_BQ | HNSW_BQインデックスの再現率はHNSWインデックスより若干低いものの、メモリ使用量は大幅に削減されます。BQ量化圧縮アルゴリズム(Rabbitq)により、ベクトルを元のサイズの1/32まで圧縮できます。ベクトルの次元が高くなるほど、HNSW_BQインデックスのメモリ最適化効果はより顕著になります。 |
| IVF | データベーステーブルに基づいて実装されたIVFインデックスで、常駐メモリを消費しません。 |
| IVF_PQ | データベーステーブルに基づいて実装されたIVF_PQインデックスで、常駐メモリを消費しません。IVFを基盤としつつPQ量化技術を適用しており、インデックスの再現率はIVFインデックスより若干低いものの、性能はIVFインデックスより優れています。また、PQ量化圧縮アルゴリズムは一般的なシナリオにおいて、ベクトルを元のサイズの1/16から1/32まで圧縮できます。 |
説明と制限
- 距離アルゴリズム:密ベクトルインデックスは、L2、内積(IP)、コサイン距離をインデックス距離アルゴリズムとしてサポートしています。
- 距離関数:ベクトルインデックス検索では、一部の距離関数の呼び出しがサポートされています。詳細については、SQL関数の使用を参照してください。
- フィルター条件:フィルター条件を含むベクトル検索をサポートしています。フィルター条件はスカラータイプの条件である場合も、ST_Intersectsなどの空間関係である場合もあります。現在、複数値インデックス、全文インデックス、グローバルインデックスをプリフィルターとして使用することはサポートされていません。
- ハイブリッド検索:同一テーブルにベクトルインデックスと全文インデックスを作成することをサポートしています。
- Offline DDL:ベクトルインデックスのOffline DDLサポート状況については、Offline DDLを参照してください。
- カラムストアインデックス:現在のバージョンでは、カラムストアベクトルインデックスの作成はサポートされていません。