- 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>'
)
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 vier Vergleichsoperatoren:
ARRAY enthält:
@contains
NUMERIC oder DATE/TIMESTAMP größer oder gleich:
@gte
NUMERIC oder DATE/TIMESTAMP kleiner oder gleich:
@lte
Diese Vergleichsoperatoren können mit verschiedenen logischen Operatoren kombiniert werden:
@and
@or
@not
Es gelten die folgenden Nutzungshinweise:
Abgleiche gegen
NaN
(„keine Zahl“) Werte in der Quellabfrage werden wie in Besondere Werte beschrieben behandelt.Numerische Festkommawerte mit mehr als 19 Ziffern (ohne führende Nullen) funktionieren nicht mit
@eq
,@gte
oder@lte
und werden von diesen Operatoren nicht zurückgegeben (obwohl sie von der Gesamtabfrage unter Verwendung von@not
trotzdem zurückgegeben werden könnten).TIMESTAMP
undDATE
-Filter akzeptieren Werte der Form:YYYY-MM-DD
und für zeitzonenabhängige Daten:YYYY-MM-DD+HH:MM
. Wenn der Zeitzonen-Offset nicht angegeben wird, wird das Datum in UTC interpretiert.
Diese Operatoren können in einem einzigen Filterobjekt kombiniert werden.
Beispiel¶
Filtern von Zeilen, bei denen die Zeichenfolge-ähnliche Spalte
string_col
gleich dem Wertvalue
ist.{ "@eq": { "string_col": "value" } }
Filtern nach Zeilen, in denen die Spalte ARRAY
array_col
den Wertvalue
enthält.{ "@contains": { "array_col": "arr_value" } }
Filtern nach Zeilen, in denen NUMERIC Spalte
numeric_col
zwischen 10,5 und 12,5 (einschließlich) liegt:{ "@and": [ { "@gte": { "numeric_col": 10.5 } }, { "@lte": { "numeric_col": 12.5 } } ]}
Filtern nach Zeilen, in denen die Spalte TIMESTAMP
timestamp_col
zwischen2024-11-19
und2024-12-19
(einschließlich) liegt.{ "@and": [ { "@gte": { "timestamp_col": "2024-11-19" } }, { "@lte": { "timestamp_col": "2024-12-19" } } ]}
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" } } ] }
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
}'
);
{
"results":[
{"col1":"text", "col2":"text"},
{"col1":"text", "col2":"text"},
{"col1":"text", "col2":"text"}
],
"request_id":"a27d1d85-e02c-4730-b320-74bf94f72d0d"
}