- Categorias:
Funções de cadeia de caracteres e binários (Large Language Model)
SEARCH_PREVIEW (SNOWFLAKE.CORTEX)¶
Dado um nome do Cortex Search Service e uma consulta, retorna uma resposta do serviço especificado.
Sintaxe¶
SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
'<service_name>',
'<query_parameters_object>'
)
Argumentos¶
service_name
Nome de seu Cortex Search Service. Use o nome totalmente qualificado se o serviço estiver em um esquema diferente da sessão atual.
query_parameters_object
Uma STRING com um objeto JSON que especifica os parâmetros de consulta para invocar o serviço.
Chave
Tipo
Descrição
Padrão
query
Cadeia de caracteres
Sua consulta de pesquisa, para pesquisar na coluna de texto no serviço.
Isso é obrigatório.
columns
Matriz
Uma lista de colunas separadas por vírgulas a serem retornadas para cada resultado relevante na resposta. Essas colunas devem ser incluídas na consulta de origem do serviço.
Coluna de pesquisa que foi especificada quando o serviço foi criado.
filter
Objeto
Um objeto de filtro para filtrar resultados com base nos dados nas colunas
ATTRIBUTES
. Para sintaxe detalhada, consulte Sintaxe do filtro.Objeto vazio
limit
Inteiro
Número máximo de resultados a serem retornados na resposta.
10
Sintaxe do filtro¶
O Cortex Search oferece suporte à filtragem nas colunas ATTRIBUTES especificadas no comando CREATE CORTEX SEARCH SERVICE.
O Cortex Search oferece suporte a dois operadores de correspondência:
Igualdade da cadeia de caracteres:
@eq
A matriz contém:
@contains
Esses operadores correspondentes podem ser compostos com vários operadores lógicos:
@and
@or
@not
Esses operadores podem ser combinados em um único objeto de filtro. Seguem alguns exemplos:
Filtro em linhas onde a coluna do tipo cadeia de caracteres
string_col
é igual ao valorvalue
.{ "@eq": { "string_col": "value" } }
Filtro em linhas onde a coluna ARRAY
array_col
contém o valorvalue
.{ "@contains": { "array_col": "arr_value" } }
Composição de filtros com operadores lógicos:
// Rows where the "array_col" column contains "arr_value" and the "string_col" column equals "value": { "@and": [ { "@contains": { "array_col": "arr_value" } }, { "@eq": { "string_col": "value" } } ] } // Rows where the "string_col" column does not equal "value" { "@not": { "@eq": { "string_col": "value" } } } // Rows where the "array_col" column contains at least one of "val1", "val2", or "val3" { "@or": [ { "@contains": { "array_col": "val1" } }, { "@contains": { "array_col": "val1" } }, { "@contains": { "array_col": "val1" } } ] }
Retornos¶
Retorna um OBJECT com o resultado de sua consulta do Cortex Search Service e um ID de solicitação exclusiva. Consulte a saída do exemplo em Exemplos.
Notas de uso¶
Esta função incorre em mais latência do que o uso da API Python. Ela foi projetada apenas para fins de teste/validação. Não é necessário usar esta função para atender consultas de pesquisa em um aplicativo de usuário final que exija baixa latência.
Esta função só opera em consultas de literal de cadeia de caracteres. Ela não aceita um lote de dados de texto.
Exemplos¶
Este exemplo consulta um serviço nomeado sample_service
com uma test query
. O exemplo retorna cinco resultados (no máximo) e inclui os dados das colunas col1
e col2
.
SELECT
SNOWFLAKE.CORTEX.SEARCH_PREVIEW (
'mydb.mysch.sample_service',
'{
"query": "test query",
"columns": ["col1", "col2"],
"limit": 3
}'
);
{
"results":[
{"col1":"text", "col2":"text"},
{"col1":"text", "col2":"text"},
{"col1":"text", "col2":"text"}
],
"request_id":"a27d1d85-e02c-4730-b320-74bf94f72d0d"
}