Inverted File Flat索引の構文およびパラメータ
Inverted File Flatベクトル索引の構文および例を示します。
構文
CREATE VECTOR INDEX <vector index name>
ON <table name> ( <vector column> )
[GLOBAL] ORGANIZATION [NEIGHBOR] PARTITIONS
[WITH] [DISTANCE <metric name>]
[WITH TARGET ACCURACY <percentage value>
[PARAMETERS ( TYPE IVF, { NEIGHBOR PARTITIONS <number of partitions> |
SAMPLES_PER_PARTITION <number of samples> |
MIN_VECTORS_PER_PARTITION <minimum number of vectors per partition> }
)]]
[PARALLEL <degree of parallelism>]
[LOCAL];
GLOBAL
句は、グローバルIVF索引を指定します。デフォルトでは、IVFベクトル索引は重心によってグローバルにパーティション化されます。
ローカルIVF索引を作成するには、LOCAL
句を指定します。
IVFのパラメータ
NEIGHBOR PARTITIONS
は、索引によって作成される重心パーティションのターゲット数を決定します。
SAMPLES_PER_PARTITION
は、クラスタリング・アルゴリズム(samples_per_partition * neighbor_partitions
)に渡されるベクトルの合計数を決定します。すべてのベクトルを渡すと、索引作成の合計時間が大幅に長くなる可能性があります。目的は、データ分散を取得できるベクトルのサブセットを渡すことです。
MIN_VECTORS_PER_PARTITION
は、パーティション当たりのターゲットの最小ベクトルの数を表します。目標は、ベクトルが少ない(<= 100)パーティションを切り捨てることです。
IVFベクトル索引パラメータの有効な範囲は次のとおりです。
ACCURACY
: 0より大きく100以下DISTANCE
:EUCLIDEAN
、L2_SQUARED
(別名EUCLIDEAN_SQUARED
)、COSINE
、DOT
、MANHATTAN
、HAMMING
TYPE
:IVF
NEIGHBOR PARTITIONS
: >0および10000000以下SAMPLES_PER_PARTITION
: 1から(num_vectors/neighbor_partitions)MIN_VECTORS_PER_PARTITION
: 0から(重心パーティションのトリミングなし)、ベクトルの合計数(1つの重心パーティション)
例
-
グローバルIVF索引を作成するには:
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);
-
ローカルIVF索引を作成するには:
CREATE VECTOR INDEX galaxies_ivf_idx ON galaxies (embedding) ORGANIZATION NEIGHBOR PARTITIONS DISTANCE COSINE WITH TARGET ACCURACY 90 PARAMETERS (type IVF, neighbor partitions 10) LOCAL;
構文の詳細は、『Oracle Database SQL言語リファレンス』の「CREATE VECTOR INDEX」を参照してください。
親トピック: 近傍パーティション・ベクトル索引