CREATE VECTOR INDEX
目的
ベクトル索引はベクトル検索を高速化し、正確な検索索引または近似検索索引のいずれかです。正確な検索により、大量のコンピュート・リソースのコストで100%の精度が得られます。ベクトル索引とも呼ばれる近似検索索引は、パフォーマンスの引き換えの精度です。
ベクトルは類似度に基づいてグループ化または結合され、類似度は相互に相対的な距離によって決定されます。強欲な検索は、検索対象の問合せベクトルに最も近い一致を見つけるために、これらのグループおよび接続全体で実行されます。ベクトル索引を使用した検索は、近似検索と呼ばれます。
ベクトル検索では、IVF (Inverted File)フラット索引とHNSW (Hierarchical Navigable Small Worlds)索引の2つのベクトル索引がサポートされています。IVFフラット(IVFとも呼ばれる)はパーティションベースの索引ですが、HNSWはグラフベースの索引です。すべてのパーティション・ベースの索引は近傍パーティション・ベクトル索引として分類され、すべてのグラフ・ベースの索引はインメモリー近傍グラフ・ベクトル索引として分類されます。
関連項目:
『AIベクトル検索ユーザーズ・ガイド』のベクトル索引の作成
構文
(vector_index_organization_clause::=,vector_index_parameters_clause::=,vector_index_parameters_hnsw_clause::=,vector_index_parameters_ivf_clause::=)
vector_index_organization_clause::=
vector_index_parameters_clause::=
vector_index_parameters_hnsw_clause::=
vector_index_parameters_ivf_clause::=
セマンティクス
INCLUDE
セマンティクスについては、『AI Vector Searchユーザーズ・ガイド』の含まれる列を参照してください。
vector_index_parameters_hnsw_clause
HNSW固有パラメータ
NEIGHBORS
とM
は同等であり、ベクトルが任意のレイヤーに保持できる近傍の最大数を表します。最後の頂点には、最大200万の近傍を持つことができる柔軟性が1つ追加されます。
EFCONSTRUCTION
は、挿入時に検索の各ステップで考慮される最も近いベクトル候補の最大数を表します。
HNSWベクトル索引パラメータの有効な範囲は次のとおりです。
-
ACCURACY
: > 0および<= 100 -
DISTANCE
:EUCLIDEAN
、L2_SQUARED
(別名EUCLIDEAN_SQUARED
)、COSINE
、DOT
、MANHATTAN
、HAMMING
-
TYPE
:HNSW
-
NEIGHBORS
: >= 2および<= 2048 -
EFCONSTRUCTION
: > 0および<= 65535
vector_index_parameters_ivf_clause
IVFパラメータ
NEIGHBOR
PARTITIONS
は、索引によって作成される重心パーティションの数を決定します。
SAMPLE_PER_PARTITION
は、クラスタリング・アルゴリズムに渡されるベクトルの合計数を決定します(パーティション当たりのサンプル数に近傍パーティション数を掛けた数)。すべてのベクトルを渡すと、索引作成の合計時間が大幅に長くなることに注意してください。かわりに、データ分散を取得できるベクトルのサブセットを渡すことを目的としています。
MIN_VECTORS_PER_PARTITION
は、パーティション当たりのターゲットの最小ベクトルの数を表します。100未満のベクトルで終わる可能性のあるパーティションを切り捨てます。その結果、重心の数が少なくなる可能性があります。その値の範囲は、0 (重心の切捨てなし)からnum_vectors (近傍パーティションが1つになる)までです。
IVFベクトル索引パラメータの有効な範囲は次のとおりです。
-
ACCURACY
: > 0および<= 100 -
DISTANCE
:EUCLIDEAN
、L2_SQUARED
(別名EUCLIDEAN_SQUARED
)、COSINE
、DOT
、MANHATTAN
、HAMMING
-
TYPE
:IVF
-
NEIGHBOR PARTITIONS
: >= 1および<= 10000000 -
SAMPLE_PER_PARTITION
: 1から(num_vectors/neighbor_partitions) -
MIN_VECTORS_PER_PARTITION
: 0から(重心パーティションの切捨てなし)、ベクトルの合計数(重心パーティションが1つになる)
例
CREATE VECTOR INDEX galaxies_hnsw_idx ON galaxies (embedding) ORGANIZATION INMEMORY NEIGHBOR GRAPH DISTANCE COSINE WITH TARGET ACCURACY 95;
CREATE VECTOR INDEX galaxies_hnsw_idx ON galaxies (embedding) ORGANIZATION INMEMORY NEIGHBOR GRAPH DISTANCE COSINE WITH TARGET ACCURACY 90 PARAMETERS (type HNSW, neighbors 40, efconstruction 500);
CREATE VECTOR INDEX galaxies_ivf_idx ON galaxies (embedding) ORGANIZATION NEIGHBOR PARTITIONS DISTANCE COSINE WITH TARGET ACCURACY 95;
CREATE VECTOR INDEX galaxies_ivf_idx ON galaxies (embedding) ORGANIZATION NEIGHBOR PARTITIONS DISTANCE COSINE WITH TARGET ACCURACY 90 PARAMETERS (type IVF, neighbor partitions 10);