🚀 Zilliz Cloudを無料で試す、完全管理型のMilvus—10倍の高速パフォーマンスを体験しよう!今すぐ試す>>

Milvus
Zilliz
フロントページへ
  • ユーザーガイド
  • Home
  • Docs
  • ユーザーガイド

  • インデックス

  • ベクトル・インデックス

  • フラット

FLAT

FLATインデックスは、浮動小数点ベクトルをインデックス化し検索するための、最も単純で簡単な方法の1つです。高度な前処理やデータ構造化を行うことなく、各クエリ・ベクトルをデータセット内のすべてのベクトルと直接比較するという、総当たり的なアプローチに依存しています。このアプローチでは、一致する可能性のあるすべてのベクトルが評価されるため、100%の再現率という精度が保証される。

しかし、この網羅的検索法にはトレードオフがある。FLATインデックスはMilvusの他のインデックスタイプと比較して最も遅いインデックスオプションであり、全てのクエリに対してデータセットのフルスキャンを実行するためである。そのため、パフォーマンスが懸念される巨大なデータセットを扱う環境には適していません。FLATインデックスの主な利点は、学習や複雑なパラメータ設定を必要としないため、シンプルで信頼性が高いことです。

インデックスの構築

Milvusでベクトル場にFLAT インデックスを構築するには、add_index() メソッドを使用し、index_typemetric_type インデックスのパラメータを指定します。

from pymilvus import MilvusClient

# Prepare index building params
index_params = MilvusClient.prepare_index_params()

index_params.add_index(
    field_name="your_vector_field_name", # Name of the vector field to be indexed
    index_type="FLAT", # Type of the index to create
    index_name="vector_index", # Name of the index to create
    metric_type="L2", # Metric type used to measure similarity
    params={} # No additional parameters required for FLAT
)

この設定では

  • index_type:構築するインデックスのタイプ。この例ではFLAT とします。
  • metric_type:ベクトル間の距離の計算方法。サポートされている値には、COSINEL2IP があります。詳細については、メトリック・タイプを参照してください。
  • params:FLAT インデックスには追加のパラメータは必要ありません。

インデックス・パラメータを構成したら、create_index() メソッドを直接使用するか、create_collection メソッドでインデックス・パラメータを渡してインデックスを作成できます。詳細は、Create Collection を参照してください。

インデックスでの検索

インデックスが構築され、エンティティが挿入されると、インデックスで類似検索を実行できます。

res = MilvusClient.search(
    collection_name="your_collection_name", # Collection name
    data=[[0.1, 0.2, 0.3, 0.4, 0.5]],  # Query vector
    limit=3,  # TopK results to return
    search_params={"params": {}}  # No additional parameters required for FLAT
)

インデックスパラメータ

FLAT インデックスでは、インデックス作成中も検索処理中も追加のパラメータは必要ありません。

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?