As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
PÉS. SEARCH
Usa a expressão de consulta fornecida para localizar chaves em um índice. Uma vez localizados, a contagem e/ou o conteúdo dos campos indexados dentro dessas chaves podem ser retornados. Para obter mais informações, consulte Expressão de consulta de pesquisa vetorial.
Para criar dados para uso nesses exemplos, consulte o FT. CREATEcomando.
Sintaxe
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: essa cláusula identifica quais campos de uma chave são retornados. A cláusula AS opcional em cada campo substitui o nome do campo no resultado. Somente campos que foram declarados para esse índice podem ser especificados.
LIMIT: <offset><count>: Essa cláusula fornece capacidade de paginação, pois somente as chaves que satisfazem os valores de deslocamento e contagem são retornadas. Se essa cláusula for omitida, o padrão será "LIMIT0 10", ou seja, somente um máximo de 10 chaves serão retornadas.
PARAMS: duas vezes o número de pares de valores-chave. Pares de chave/valor do parâmetro podem ser referenciados de dentro da expressão de consulta. Para obter mais informações, consulte Expressão de consulta de pesquisa vetorial.
COUNT: Essa cláusula suprime o retorno do conteúdo das chaves, somente o número de chaves é retornado. Esse é um alias para "LIMIT0 0".
Return
Retorna uma matriz ou a resposta de erro.
Se a operação for concluída com êxito, retornará uma matriz. O primeiro elemento é o número total de chaves correspondentes à consulta. Os elementos restantes são pares de nome de chave e lista de campos. A lista de campos é outra matriz que compreende pares de nomes e valores de campo.
Se o índice estiver em andamento para preenchimento, o comando retornará imediatamente uma resposta de erro.
Se o tempo limite for atingido, o comando retornará uma resposta de erro.
Exemplo: faça algumas pesquisas
nota
O exemplo a seguir usa argumentos nativos de valkey-cli
Uma pesquisa 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"
Isso produz dois resultados, classificados por sua pontuação, que é a distância do vetor de consulta (inserido como hexadecimal).
JSONpesquisas
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]}]"
Isso produz os dois resultados mais próximos, classificados por sua pontuação, e observe que os valores JSON vetoriais são convertidos em flutuantes e o vetor de consulta ainda é um dado vetorial. Observe também que, como o parâmetro KNN
é 2, há apenas dois resultados. Um valor maior retornará mais 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]}]"