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>'
)
Copy

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 valor value.

    { "@eq": { "string_col": "value" } }
    
    Copy
  • Filtro em linhas onde a coluna ARRAY array_col contém o valor value.

    { "@contains": { "array_col": "arr_value" } }
    
    Copy
  • 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" } }
      ]
    }
    
    Copy

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
      }'
  );
Copy
{
  "results":[
      {"col1":"text", "col2":"text"},
      {"col1":"text", "col2":"text"},
      {"col1":"text", "col2":"text"}
  ],
  "request_id":"a27d1d85-e02c-4730-b320-74bf94f72d0d"
}