카테고리:

문자열 및 이진 함수 (대규모 언어 모델)

SEARCH_PREVIEW(SNOWFLAKE.CORTEX)

Cortex Search Service 이름과 쿼리가 주어지면 지정된 서비스에서 응답을 반환합니다.

구문

SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
    '<service_name>',
    '<query_parameters_object>'
)
Copy

인자

service_name

Cortex Search Service의 이름입니다. 서비스가 현재 세션과 다른 스키마에 있는 경우 정규화된 이름을 사용합니다.

query_parameters_object

서비스 호출을 위한 쿼리 매개 변수를 지정하는 JSON 오브젝트가 포함된 STRING 입니다.

타입

설명

기본값

query

String

사용자의 검색어는 서비스의 텍스트 열을 검색하는 데 사용됩니다.

필수 사항입니다.

columns

배열

응답에서 각 관련 결과에 대해 반환할 열의 쉼표로 구분된 목록입니다. 이러한 열은 서비스의 소스 쿼리에 포함되어야 합니다.

서비스 생성 시 지정된 검색 열입니다.

filter

오브젝트

ATTRIBUTES 열의 데이터를 기준으로 결과를 필터링하기 위한 필터 오브젝트입니다. 자세한 구문은 필터 구문 섹션을 참조하십시오.

빈 오브젝트

limit

Integer

응답에서 반환할 결과의 최대 개수입니다.

10

필터 구문

Cortex Search는 CREATE CORTEX SEARCH SERVICE 명령에 지정된 ATTRIBUTES 열에 대한 필터링을 지원합니다.

Cortex Search는 2개의 일치 연산자를 지원합니다.

  • 문자열 동등성: @eq

  • 배열에 포함된 항목: @contains

이러한 일치 연산자는 다양한 논리 연산자로 구성될 수 있습니다.

  • @and

  • @or

  • @not

이러한 연산자를 1개의 필터 오브젝트로 결합할 수 있습니다. 다음은 그 예입니다.

  • 문자열과 같은 열 string_colvalue 값과 같은 행을 필터링합니다.

    { "@eq": { "string_col": "value" } }
    
    Copy
  • ARRAY 열 array_col 에 값 value 가 포함된 행을 필터링합니다.

    { "@contains": { "array_col": "arr_value" } }
    
    Copy
  • 논리 연산자를 사용하여 필터 구성:

    // 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

반환

Cortex Search Service의 쿼리 결과와 고유한 요청 ID가 포함된 OBJECT 를 반환합니다. 의 예시 출력을 참조하십시오.

사용법 노트

  • 이 함수는 Python API를 사용할 때보다 지연 시간이 더 길어집니다. 테스트/검증 목적으로만 사용하도록 설계되었습니다. 지연 시간이 짧아야 하는 최종 사용자 애플리케이션에서 검색 쿼리를 처리하는 데 이 함수를 사용하면 안 됩니다.

  • 이 함수는 문자열 리터럴 쿼리에서만 작동합니다. 텍스트 데이터 배치는 허용하지 않습니다.

다음 예에서는 test querysample_service 라는 서비스를 쿼리합니다. 예에서는 최대 5개의 결과를 반환하며 col1col2 열의 데이터를 포함합니다.

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