PIES. SEARCH - Amazon MemoryDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

PIES. SEARCH

Utiliza la expresión de consulta proporcionada para localizar las claves dentro de un índice. Una vez localizadas, se puede devolver el recuento o el contenido de los campos indexados dentro de esas claves. Para obtener más información, consulte Expresión de consulta de búsqueda vectorial.

Para crear datos para usarlos en estos ejemplos, consulte el FT. CREATEcomando.

Sintaxis

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: Esta cláusula identifica qué campos de una clave se devuelven. La cláusula AS opcional de cada campo anula el nombre del campo en el resultado. Solo se pueden especificar los campos que se han declarado para este índice.

  • LIMIT: <offset><count>: Esta cláusula proporciona la capacidad de paginación, ya que solo se devuelven las claves que cumplen los valores de compensación y recuento. Si se omite esta cláusula, el valor predeterminado es "LIMIT0 10", es decir, solo se devolverá un máximo de 10 claves.

  • PARAMS: Dos veces el número de pares de valores clave. Se puede hacer referencia a los pares clave/valor de los parámetros desde la expresión de consulta. Para obtener más información, consulte Expresión de consulta de búsqueda vectorial.

  • COUNT: Esta cláusula impide la devolución del contenido de las claves, solo se devuelve el número de claves. Se trata de un alias para "LIMIT0 0".

Devolución

Devuelve una matriz o una respuesta de error.

  • Si la operación se completa correctamente, devuelve una matriz. El primer elemento es la cantidad total de claves que coinciden con la consulta. Los elementos restantes son pares de nombre de clave y la lista de campos. La lista de campos es otra matriz que comprende pares de nombres y valores de campo.

  • Si el índice está en proceso de reposición, el comando devuelve inmediatamente una respuesta de error.

  • Si se agota el tiempo de espera, el comando devuelve una respuesta de error.

Ejemplo: haz algunas búsquedas

nota

En el siguiente ejemplo, se utilizan argumentos nativos de redis-cli, como eliminar las comillas y los valores de escape de los datos, antes de enviarlos a Redis. OSS Para usar otros clientes de lenguajes de programación (Python, Ruby, C#, etc.), siga las reglas de manejo de esos entornos para tratamiento de cadenas y datos binarios. Para obtener más información sobre los clientes compatibles, consulte Herramientas sobre las que basarse AWS

Una búsqueda de hash

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"

Esto produce dos resultados, ordenados por su puntuación, que es la distancia desde el vector de consulta (introducido como hexadecimal).

JSONbúsquedas

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]}]"

Esto produce los dos resultados más cercanos, ordenados por su puntuación, y tenga en cuenta que los valores JSON vectoriales se convierten en flotantes y el vector de consulta sigue siendo datos vectoriales. Tenga en cuenta también que, dado que el parámetro KNN es 2, solo hay dos resultados. Un valor mayor devolverá más resultados:

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]}]"