FT。SEARCH - Amazon MemoryDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

FT。SEARCH

インデックス内のキーを検索するために、指定されたクエリ式を使用します。見つかると、それらのキー内のインデックス付きフィールドのカウントおよび/または内容を返すことができます。詳細については、「ベクトル検索クエリ式」を参照してください。

これらの例で使用するデータを作成するには、FT.CREATE コマンドを参照してください。

[Syntax] (構文)

FT.SEARCH <index-name> <query> [RETURN <token_count> (<field-identifier> [AS <alias>])+] [TIMEOUT timeout] [PARAMS <count> <name> <value> [<name> <value>]] [LIMIT <offset> <count>] [COUNT]
  • RETURN: この句は、返されるキーのフィールドを識別します。各フィールドのオプションの AS 句は、結果内のフィールドの名前を上書きします。このインデックスのために宣言されているフィールドのみを指定できます。

  • LIMIT: <offset> <count>: この句は、オフセット値とカウント値を満たすキーのみが返されるページ分割機能を提供します。この句を省略すると、デフォルトでLIMIT「0 10」になります。つまり、返されるキーは最大 10 個のみです。

  • PARAMS: キー値のペアの数の 2 倍。Param の key/value ペアはクエリ式内から参照できます。詳細については、「ベクトル検索クエリ式」を参照してください。

  • COUNT: この句はキーの内容の返りを抑制し、返されるキーの数のみを示します。これは「0 0LIMIT」のエイリアスです。

戻る

配列またはエラー応答を返します。

  • オペレーションが正常に完了すると、配列が返されます。最初の要素は、クエリに一致するキーの総数です。残りの要素は、キー名とフィールドリストのペアです。フィールドリストは、フィールド名と値のペアで構成される別の配列です。

  • インデックスのバックフィルが進行中の場合、コマンドは直ちにエラー応答を返します。

  • タイムアウトに達すると、コマンドはエラー応答を返します。

例: 検索を実行する

注記

次の例では、Valkey または Redis に送信する前に、データの引用符解除やエスケープ解除など、valkey-cli にネイティブな引数を使用しますOSS。他のプログラミング言語クライアント (Python、Ruby、C# など) を使用するには、それらの環境の文字列およびバイナリデータの処理規則に従います。サポートされているクライアントの詳細については、「 で構築するツール AWS」を参照してください。

ハッシュ検索

FT.SEARCH hash_idx1 "*=>[KNN 2 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2 1) (integer) 2 2) "hash:0" 3) 1) "__VEC_score" 2) "0" 3) "vec" 4) "\x00\x00\x00\x00\x00\x00\x00\x00" 4) "hash:1" 5) 1) "__VEC_score" 2) "1" 3) "vec" 4) "\x00\x00\x00\x00\x00\x00\x80\xbf"

これにより、クエリベクトルからの距離 (16 進数で入力) であるスコアでソートされた 2 つの結果が生成されます。

JSON 検索

FT.SEARCH json_idx1 "*=>[KNN 2 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2 1) (integer) 2 2) "json:2" 3) 1) "__VEC_score" 2) "11.11" 3) "$" 4) "[{\"vec\":[1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}]" 4) "json:0" 5) 1) "__VEC_score" 2) "91" 3) "$" 4) "[{\"vec\":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]}]"

これにより、スコアでソートされた 2 つの最も近い結果が生成され、JSONベクトル値は浮動小数点に変換され、クエリベクトルは依然としてベクトルデータであることに注意してください。KNN パラメータが 2 であるため、結果は 2 つだけであることにも留意してください。値が大きいほど、より多くの結果が返されます:

FT.SEARCH json_idx1 "*=>[KNN 100 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2 1) (integer) 3 2) "json:2" 3) 1) "__VEC_score" 2) "11.11" 3) "$" 4) "[{\"vec\":[1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}]" 4) "json:0" 5) 1) "__VEC_score" 2) "91" 3) "$" 4) "[{\"vec\":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]}]" 6) "json:1" 7) 1) "__VEC_score" 2) "9100" 3) "$" 4) "[{\"vec\":[10.0, 20.0, 30.0, 40.0, 50.0, 60.0]}]"