Inverted File Flat CREATE INDEX
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、HAMMINGTYPE:IVFNEIGHBOR PARTITIONS: >0および<= 10000000SAMPLES_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」を参照してください。
親トピック: 近傍パーティション・ベクトル索引