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

  • インデックス

  • スカラー・インデックス

  • STL_SORT

STL_SORT

STL_SORT インデックスはMilvus内の数値フィールド(INT8、INT16など)、VARCHAR フィールド、TIMESTAMPTZ フィールドのデータをソート順に整理することにより、クエリの性能を向上させるために特別に設計されたインデックスタイプです。

以下のようなクエリを頻繁に実行する場合は、STL_SORT インデックスを使用してください:

  • ==!=><>=<= の演算子による比較フィルタリング。

  • IN およびLIKE 演算子による範囲フィルタリング

サポートされるデータ型

仕組み

Milvusは2つのフェーズでSTL_SORT

  1. インデックスの構築

    • インジェスト中、Milvusはインデックスされたフィールドのすべての値を収集します。

    • 値はC++ STLのstd::sortを使用して昇順にソートされます。

    • 各値はエンティティIDと対にされ、ソートされた配列がインデックスとして永続化されます。

  2. クエリの高速化

    • クエリー時、Milvusはソートされた配列に対してバイナリサーチ(std::lower_boundと std::upper_bound)を使用します。

    • 等値の場合、Milvusは一致するすべての値を素早く見つけます。

    • 範囲の場合、Milvusは開始位置と終了位置を特定し、その間のすべての値を返します。

    • 一致したエンティティIDは、最終的な結果の組み立てのためにクエリ実行部に渡されます。

これにより、クエリの複雑さがO(n)(フルスキャン)からO(log n + m)(mはマッチ数)に減少します。

STL_SORTインデックスの作成

数値フィールドまたはTIMESTAMPTZ フィールドにSTL_SORT インデックスを作成することができます。追加のパラメータは必要ありません。

以下の例は、TIMESTAMPTZ フィールドにSTL_SORT インデックスを作成する方法を示しています:

from pymilvus import MilvusClient

client = MilvusClient(uri="http://localhost:19530") # Replace with your server address

# Assume you have defined a TIMESTAMPTZ field named "tsz" in your collection schema

# Prepare index parameters
index_params = client.prepare_index_params()

# Add RTREE index on the "tsz" field
index_params.add_index(
    field_name="tsz",
    index_type="STL_SORT",   # Index for TIMESTAMPTZ
    index_name="tsz_index",  # Optional, name your index
    params={}                # No extra params needed
)

# Create the index on the collection
client.create_index(
    collection_name="tsz_demo",
    index_params=index_params
)

インデックスの削除

コレクションから既存のインデックスを削除するには、drop_index() メソッドを使用します。

client.drop_index(
    collection_name="tsz_demo",   # Name of the collection
    index_name="tsz_index" # Name of the index to drop
)

使用上の注意

  • フィールド・タイプ:数値フィールドおよびTIMESTAMPTZ フィールドで動作します。データ型の詳細は、Boolean & NumberおよびTIMESTAMPTZ Field を参照してください。

  • パラメータ:インデックス・パラメータは必要ありません。

  • Mmapはサポートされていません:メモリ・マップド・モードはSTL_SORT では使用できない。

Try Managed Milvus for Free

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

Get Started
フィードバック

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