IndexType
IndexType インスタンスは、ベクトルフィールドとスカラーフィールドでサポートされるインデックスアルゴリズムを列挙します。
type IndexType string
値:
-
Flat = "FLAT"
Flat(総当たり)インデックスです。正確ですが、大規模なデータセットでは低速です。
-
BinFlat = "BIN_FLAT"
バイナリベクトル用の Flat インデックスです。
-
IvfFlat = "IVF_FLAT"
フラット量子化を使用する IVF です。精度/speed のバランスが良好です。
-
BinIvfFlat = "BIN_IVF_FLAT"
バイナリベクトル用の IVF-Flat です。
-
IvfPQ = "IVF_PQ"
積量子化を使用する IVF です。メモリ効率に優れています。
-
IvfSQ8 = "IVF_SQ8"
8 ビットスカラー量子化を使用する IVF です。
-
IvfRabitQ = "IVF_RABITQ"
RaBitQ 量子化を使用する IVF です。
-
HNSW = "HNSW"
階層型 Navigable Small World グラフです。高い再現率と高速な検索を実現します。
-
HNSWSQ = "HNSW_SQ"
メモリ使用量を削減するためのスカラー量子化を備えた HNSW です。
-
HNSWPQ = "HNSW_PQ"
メモリ使用量を削減するための積量子化を備えた HNSW です。
-
HNSWPRQ = "HNSW_PRQ"
メモリ使用量を削減するための積残差量子化を備えた HNSW です。
-
IvfHNSW = "IVF_HNSW"
IVF と HNSW を組み合わせたインデックスです。
-
AUTOINDEX = "AUTOINDEX"
最適なインデックスタイプを自動的に選択します。
-
DISKANN = "DISKANN"
大規模データセット向けのディスクベース ANN インデックスです。
-
AISAQ = "AISAQ"
PQ コードをグラフとインラインに保持し、ホップあたりのランダム読み取りを削減する DiskANN のバリアントです。
-
SCANN = "SCANN"
ScaNN(Scalable Nearest Neighbors)インデックスです。
-
MinHashLSH = "MINHASH_LSH"
集合の類似度向けの MinHash LSH インデックスです。
-
SparseInverted = "SPARSE_INVERTED_INDEX"
スパースベクトル用の転置インデックスです。
-
SparseWAND = "SPARSE_WAND"
スパースベクトル検索用の WAND アルゴリズムです。
-
GPUIvfFlat = "GPU_IVF_FLAT"
GPU で高速化された IVF-Flat インデックスです。
-
GPUIvfPQ = "GPU_IVF_PQ"
GPU で高速化された IVF-PQ インデックスです。
-
GPUCagra = "GPU_CAGRA"
GPU で高速化された CAGRA グラフインデックスです。
-
GPUBruteForce = "GPU_BRUTE_FORCE"
GPU で高速化された総当たりインデックスです。
-
Trie = "Trie"
文字列フィールド用の Trie インデックスです。
-
Sorted = "STL_SORT"
スカラーフィールド用のソート済みインデックスです。
-
Inverted = "INVERTED"
スカラーフィールド用の転置インデックスです。
-
NGRAM = "NGRAM"
VARCHAR フィールド用の N-gram インデックスで、部分文字列演算子(LIKE の前方一致 / 中間一致 / 後方一致および正規表現一致)を高速化します。
-
FMINDEX = "FMINDEX"
VARCHAR フィールド用の FM インデックスで、候補を再チェックすることなく、アンカー付き LIKE(前方一致 / 中間一致 / 後方一致)に正確に応答します。
-
BITMAP = "BITMAP"
カーディナリティの低いスカラーフィールド用のビットマップインデックスです。
-
RTREE = "RTREE"
空間データ用の R-tree インデックスです。
例
IndexType の使用方法を示します。
import (
"context"
"github.com/milvus-io/milvus/client/v3/index"
"github.com/milvus-io/milvus/client/v3/entity"
"github.com/milvus-io/milvus/client/v3/milvusclient"
)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
milvusAddr := "YOUR_CLUSTER_ENDPOINT"
cli, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: milvusAddr,
})
if err != nil {
// handle error
}
defer cli.Close(ctx)
// Create an HNSW index on a float vector field
hnswIndex := index.NewHNSWIndex(entity.L2, 16, 200)
_, err = cli.CreateIndex(ctx, milvusclient.NewCreateIndexOption(
"my_collection", "embedding", hnswIndex))
if err != nil {
// handle error
}
// Create an IVF_FLAT index
ivfIndex := index.NewIvfFlatIndex(entity.L2, 128)
_, err = cli.CreateIndex(ctx, milvusclient.NewCreateIndexOption(
"my_collection", "embedding2", ivfIndex))
if err != nil {
// handle error
}