- カテゴリ:
文字列とバイナリ関数 (AI 関数)
SEARCH_PREVIEW (SNOWFLAKE.CORTEX)¶
Cortex Searchのサービス名とクエリが指定されると、指定されたサービスからの応答を返します。
構文¶
引数¶
service_nameCortex Searchサービスの名前。サービスが現在のセッションと異なるスキーマにある場合、完全修飾名を使用します。
query_parameters_objectサービスを呼び出すためのクエリパラメーターを指定する JSON オブジェクトを含む STRING。
キー
型
説明
デフォルト
queryString
検索クエリ、サービス内のテキスト列を検索します。
これは必須です。
columns配列
カンマ区切りのリストで、応答内の関連する結果ごとに返す列を指定します。これらの列は、サービスのソースクエリに含まれている必要があります。
サービス作成時に指定した検索列。
filterオブジェクト
ATTRIBUTES列のデータに基づいて結果をフィルタリングするためのフィルターオブジェクト。詳細な構文については、 フィルター構文 をご参照ください。空のオブジェクト
limitInteger
応答で返す結果の最大数。
10
フィルター構文¶
Cortex Searchは、 CREATE CORTEX SEARCH SERVICE コマンドで指定された ATTRIBUTES 列でのフィルタリングをサポートします。
Cortex Searchは4つのマッチング演算子をサポートしています。
ARRAY には
@containsが含まれています。NUMERIC または DATE/TIMESTAMP 同等またはそれ以上:
@gteNUMERIC または DATE/TIMESTAMP 同等またはそれ以下:
@lte主キー 等価:
@primarykey
これらのマッチング演算子は、さまざまな論理演算子と組み合わせることができます。
@and@or@not
以下の使用上の注意があります。
ソース・クエリ内の
NaN('not a number') 値に対するマッチングは、 特別な価値 の説明に従って処理されます。19桁を越える 固定小数点 数値(先頭のゼロを含まない)は、
@eq、@gte、および@lteでは機能せず、これらの演算子によって返されません。たとえば、ソースクエリに大きな値がある場合、
@eqを使用してその値を正確に一致させると、結果は返されません。これらの大きな値は、
@notを使用した全体的なフィルターによって依然として返される可能性があります(たとえば、@eq Xは、大きなXに対して値を返しませんが、@not @eq Yはそれを返します)
TIMESTAMPおよびDATEフィルターは、YYYY-MM-DDおよびタイムゾーンを意識した日付の場合はYYYY-MM-DD+HH:MMという形式の値を受け付けます。タイムゾーンオフセットを指定しない場合、日付は UTC で解釈されます。@primarykeyは 主キー で構成されたサービスでのみサポートされます。フィルターの値は である必要があります JSON すべての主キー列を対応する値にマッピングオブジェクト(またはNULL)。
これらの演算子は1つのフィルターオブジェクトにまとめることができます。
例¶
文字列のような列
string_colが値valueと等しい行に対するフィルタリング。指定された主キーを持つ行へのフィルタリング
ARRAY 列
array_colに値valueが含まれる行のフィルタリング。NUMERIC 列
numeric_colが 10.5 から 12.5 (含む) の間の行のフィルター:TIMESTAMP 列
timestamp_colが2024-11-19と2024-12-19の間にある行のフィルタリング。論理演算子でフィルターを構成する
戻り値¶
Cortex Searchサービスからのクエリ結果と、一意のリクエスト ID を含む OBJECT を返します。`例`_ の出力例をご参照ください。
使用上の注意¶
この関数はテストと検証用に設計されており、 REST またはPython APIs を使用するよりも長いレイテンシが発生します。低レイテンシを必要とするエンドユーザーアプリケーションで検索クエリを提供するには、他の方法を使用します。
この関数は定数引数に対してのみ機能します。入力としてテーブル列を受け入れません。
この関数は、検索結果が300kBを超える場合、検索結果を切り捨てます。REST サーフェスは最大 10MB の応答を許可します。
例¶
この例は、 test query を使用して sample_service という名前のサービスをクエリします。この例は、(最大でも)5つの結果を返し、 col1 と col2 列のデータを含んでいます。