- Categorias:
Funções de cadeia de caracteres e binários (funções de AI)
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_nameNome 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_objectUma STRING com um objeto JSON que especifica os parâmetros de consulta para invocar o serviço.
Chave
Tipo
Descrição
Padrão
queryCadeia de caracteres
Sua consulta de pesquisa, para pesquisar na coluna de texto no serviço.
Isso é obrigatório.
columnsMatriz
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.
filterObjeto
Um objeto de filtro para filtrar resultados com base nos dados nas colunas
ATTRIBUTES. Para sintaxe detalhada, consulte Sintaxe do filtro.Objeto vazio
limitInteiro
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 cinco operadores de correspondência:
ARRAY contém:
@containsNUMERIC ou DATE/TIMESTAMP maior ou igual a:
@gteNUMERIC ou DATE/TIMESTAMP menor ou igual a:
@lteIgualdade da chave primária:
@primarykey
Esses operadores correspondentes podem ser compostos com vários operadores lógicos:
@and@or@not
As seguintes notas de uso se aplicam:
A correspondência com os valores
NaN(“not a number”) na consulta de origem é tratada conforme descrito em Valores especiais.Os valores numéricos de ponto fixo com mais de 19 dígitos (não incluindo os zeros à esquerda) não funcionam com
@eq,@gteou@ltee não serão retornados por esses operadores (embora ainda possam ser retornados pela consulta geral com o uso de@not).Os filtros
TIMESTAMPeDATEaceitam valores no formato:YYYY-MM-DDe, para datas com reconhecimento de fuso horário:YYYY-MM-DD+HH:MM. Se o deslocamento de fuso horário não for especificado, a data será interpretada em UTC.@primarykeysó é compatível com serviços configurados com uma chave primária. O valor do filtro deve ser um objeto JSON que mapeia cada coluna de chave primária para seu valor correspondente (ouNULL).
Esses operadores podem ser combinados em um único objeto de filtro.
Exemplo¶
Filtro em linhas onde a coluna do tipo cadeia de caracteres
string_colé igual ao valorvalue.{ "@eq": { "string_col": "value" } }
Filtragem para uma linha com a chave primária especificada,
{ "@primarykey": { "region": "us-west-1", "agent_id": "abc123" } }
Filtro em linhas onde a coluna ARRAY
array_colcontém o valorvalue.{ "@contains": { "array_col": "arr_value" } }
Filtragem de linhas em que a coluna NUMERIC
numeric_colestá entre 10,5 e 12,5 (inclusive):{ "@and": [ { "@gte": { "numeric_col": 10.5 } }, { "@lte": { "numeric_col": 12.5 } } ]}
Filtragem de linhas em que a coluna TIMESTAMP
timestamp_colestá entre2024-11-19e2024-12-19(inclusive).{ "@and": [ { "@gte": { "timestamp_col": "2024-11-19" } }, { "@lte": { "timestamp_col": "2024-12-19" } } ]}
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"
}