Kategorien:

Zeichenfolgen- und Binärfunktionen (Large Language Model)

SEARCH_PREVIEW (SNOWFLAKE.CORTEX)

Gibt bei Angabe eines Cortex Search Service-Namens und einer Abfrage eine Antwort vom angegebenen Dienst zurück.

Syntax

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

Argumente

service_name

Name Ihres Cortex Search Service. Verwenden Sie den vollständig qualifizierten Namen, wenn sich der Dienst in einem anderen Schema als dem der aktuellen Sitzung befindet.

query_parameters_object

Ein STRING, der ein JSON-Objekt enthält, das die Abfrageparameter für den Aufruf des Dienstes angibt.

Schlüssel

Typ

Beschreibung

Standard

query

String

Ihre Abfrage, um die Textspalte im Dienst zu durchsuchen.

Dies ist erforderlich.

columns

Array

Eine durch Kommata getrennte Liste von Spalten, die für jedes relevante Ergebnis in der Antwort zurückgegeben werden soll. Diese Spalten müssen in der Quellabfrage für den Dienst enthalten sein.

Suchspalte, die bei der Erstellung des Dienstes angegeben wurde.

filter

Objekt

Ein Filterobjekt zum Filtern der Ergebnisse auf der Grundlage der Daten in den ATTRIBUTES-Spalten. Für eine detaillierte Syntax siehe Filtersyntax.

Leeres Objekt

limit

Integer

Maximale Anzahl der Ergebnisse, die in der Antwort zurückgegeben werden sollen

10

Filtersyntax

Cortex Search unterstützt das Filtern nach den ATTRIBUTES-Spalten, die im Befehl CREATE CORTEX SEARCH SERVICE angegeben sind.

Cortex Search unterstützt zwei Abgleichsoperatoren:

  • Zeichenfolgengleichheit: @eq

  • Array enthält: @contains

Diese Vergleichsoperatoren können mit verschiedenen logischen Operatoren kombiniert werden:

  • @and

  • @or

  • @not

Diese Operatoren können in einem einzigen Filterobjekt kombiniert werden. Es folgen Beispiele:

  • Filtern von Zeilen, bei denen die Zeichenfolge-ähnliche Spalte string_col gleich dem Wert value ist.

    { "@eq": { "string_col": "value" } }
    
    Copy
  • Filtern nach Zeilen, in denen die Spalte ARRAY array_col den Wert value enthält.

    { "@contains": { "array_col": "arr_value" } }
    
    Copy
  • Zusammenstellen von Filtern mit logischen Operatoren:

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

Rückgabewerte

Gibt ein OBJECT zurück, das das Ergebnis Ihrer Abfrage aus Ihrem Cortex Search Service und eine eindeutige Anfrage-ID enthält. Siehe die Beispielausgabe in Beispiele.

Nutzungshinweise

  • Diese Funktion verursacht mehr Latenzzeit als die Verwendung der Python-API. Sie ist nur für Test-/Validierungszwecke gedacht. Sie sollten diese Funktion nicht für Suchabfragen in einer Endbenutzer-Anwendung verwenden, die eine geringe Latenzzeit erfordert.

  • Diese Funktion funktioniert nur bei Abfragen mit Zeichenfolgenliteralen. Sie akzeptiert keinen Batch von Textdaten.

Beispiele

In diesem Beispiel wird ein Dienst namens sample_service mit einer test query abgefragt. Das Beispiel liefert (höchstens) fünf Ergebnisse und enthält die Daten aus den Spalten col1 und 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"
}