すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:文字列関数

最終更新日:Jun 23, 2026

このトピックでは、文字列関数の基本的な構文と例について説明します。

Log Service は、次の文字列関数をサポートしています。

重要 分析文で文字列を使用する場合は、文字列を単一引用符 (') で囲む必要があります。囲まれていない文字列、または二重引用符 ("") で囲まれた文字列は、フィールド名または列名を示します。たとえば、'status' は文字列 status を示し、status または "status" はログフィールド status を示します。

関数

構文

説明

SQL

SPL

chr 関数

chr(x)

ASCII コードを文字に変換します。

codepoint 関数

codepoint(x)

文字を ASCII コードに変換します。

concat 関数

concat(x, y...)

複数の文字列を連結します。

from_utf8 関数

from_utf8(x)

バイナリ文字列を UTF-8 テキストとしてデコードし、無効な文字をデフォルトの置換文字 (U+FFFD) に置き換えます。

from_utf8(x, replace_string)

バイナリ文字列を UTF-8 テキストとしてデコードし、無効な文字をカスタム文字列に置き換えます。

length 関数

length(x)

文字列の長さを返します。

levenshtein_distance 関数

levenshtein_distance(x, y)

xy の間の最小編集距離を計算します。

×

lower 関数

lower(x)

文字列を小文字に変換します。

lpad 関数

lpad(x, length, lpad_string)

文字列の先頭に指定した文字列をパディングして、指定した長さにします。

ltrim 関数

ltrim(x)

文字列の先頭の空白を削除します。

normalize 関数

normalize(x)

文字列を NFC 形式に正規化します。

×

position 関数

position(sub_string in x)

別の文字列内で最初に出現する部分文字列の開始位置を返します。

×

replace 関数

replace(x, sub_string )

文字列から指定された部分文字列のすべての出現箇所を削除します。

replace(x, sub_string, replace_string)

指定された部分文字列のすべての出現箇所を置換文字列に置き換えます。

reverse 関数

reverse(x)

文字列を反転させます。

rpad 関数

rpad(x, length, rpad_string)

文字列の末尾に指定した文字列をパディングして、指定した長さにします。

rtrim 関数

rtrim(x)

文字列の末尾の空白を削除します。

split 関数

split(x, delimiter)

文字列をデリミタで分割し、部分文字列の配列を返します。

split(x, delimiter, limit)

指定された区切り文字で文字列を分割し、limit パラメーターを使用して分割数を制限し、結果の部分文字列の配列を返します。

split_part 関数

split_part(x, delimiter, part)

文字列をデリミタで分割し、指定された位置の部分文字列を返します。

split_to_map 関数

split_to_map(x, delimiter01, delimiter02)

2 つのデリミタを使用して、文字列をキーと値のペアのマップに分割します。

strpos 関数

strpos(x, sub_string)

この関数は position(sub_string in x) のエイリアスです。

substr 関数

substr(x, start)

指定された位置から始まる部分文字列を文字列から抽出します。

substr(x, start, length)

指定された位置から始まる、指定された長さの部分文字列を文字列から抽出します。

to_utf8 関数

to_utf8(x)

文字列を UTF-8 バイナリ文字列にエンコードします。

trim 関数

trim(x)

文字列の先頭と末尾の空白を削除します。

upper 関数

upper(x)

文字列を大文字に変換します。

csv_extract_map 関数

csv_extract_map(x, delimiter, quote, keys)

CSV テキストの行から指定された値を抽出し、マップに格納します。

×

ilike 関数

ilike(x, pattern)

大文字と小文字を区別せずに、文字列がパターンに一致するかどうかをチェックします。

str_uuid 関数

str_uuid()

ランダムな 128 ビットの UUID を生成し、文字列として返します。

×

gzip_compress 関数

gzip_compress(data, compression_level)

GZIP アルゴリズムを使用して文字列をバイナリストリームに圧縮します。

×

gzip_decompress 関数

gzip_decompress(binary_data)

GZIP 圧縮されたバイナリストリームを解凍し、元の文字列を返します。

×

search 関数

search(search_expression)

SQL 分析文内でログデータに対して全文検索を実行します。ブール演算、フィールド固有の検索、あいまいクエリ、範囲クエリをサポートします。

×

chr 関数

chr 関数は、ASCII コードを文字に変換します。

構文

chr(x)

パラメーター

パラメーター

説明

x

ASCII コード。

戻り値の型

varchar

region フィールドの値の最初の文字が 'c' であるかどうかを判断します。ここで、99 は小文字 'c' の ASCII コードです。

  • フィールド例

    region:cn-shanghai
  • クエリと分析の文 (テスト)

    * | SELECT
      substr(region, 1, 1) = chr(99)
  • クエリと分析の結果:_col0 列の戻り値は true であり、region フィールドの最初の文字が chr(99) (文字 c) と一致することを示します。

Codepoint 関数

codepoint 関数は、文字を ASCII コードに変換します。

構文

codepoint(x)

パラメーター

パラメーター

説明

x

変換する文字。varchar 型である必要があります。

戻り値の型

integer

region フィールドの値の最初の文字が 'c' であるかどうかを判断します。ここで、99 は小文字 'c' の ASCII コードです。

  • フィールド例

    upstream_status:200
  • クエリ文 (テスト)

    * | SELECT
      codepoint(cast (substr(region, 1, 1) AS char(1))) = 99
  • クエリと分析の結果:_col0 列は 2 行のデータを返し、両方の行の値は true です。

Concat 関数

複数の文字列を 1 つの文字列に連結します。

構文

concat(x, y...)

パラメーター

パラメーター

説明

x

値は varchar である必要があります。

y

値は varchar である必要があります。

戻り値の型

戻り値は varchar です。

region フィールドと request_method フィールドの値を 1 つの文字列に連結します。

  • フィールド例

    region:cn-shanghai
    time:14/Jul/2021:02:19:40
  • クエリと分析の文 (テスト)

    * | SELECT
      concat(region, '-', time)
  • クエリと分析の結果では、_col0 列は cn-shanghai-14/Jul/2021:01:16:30 のような連結された文字列を返します。

from_utf8 関数

バイナリ文字列を UTF-8 エンコード形式にデコードします。

構文

  • 無効な UTF-8 文字をデフォルトの置換文字 U+FFFD に置き換えます。

    from_utf8(x)
  • 無効な UTF-8 文字を指定された文字に置き換えます。

    from_utf8(x,replace_string)

パラメーター

パラメーター

説明

x

デコードするバイナリ文字列。

replace_string

無効な UTF-8 文字を置き換えるために使用されるオプションの単一文字またはスペース。

戻り値の型

varchar

  • バイナリ文字列 0x80 をデコードし、無効な UTF-8 文字をデフォルトの置換文字 (U+FFFD) に置き換えます。

    • クエリと分析の文 (デバッグ)

      * | SELECT
        from_utf8(from_base64('0x80'))
    • クエリと分析の結果:クエリは単一の列 _col0 を返します。値は置換文字 (U+FFFD) を含む文字列であり、無効な UTF-8 バイトがデフォルトの置換文字に置き換えられたことを意味します。

  • バイナリ文字列 0x80 をデコードし、無効な UTF-8 文字を '0' に置き換えます。

    • クエリと分析の文 (デバッグ)

      * | SELECT
        from_utf8(from_base64('0x80'), '0')
    • クエリと分析の結果は、_col0 という名前の単一の列と値 0□4 を返します。四角いボックスは正しくレンダリングできないバイトを表しており、これは from_utf8 関数が無効な UTF-8 バイトを置き換えた後の出力です。

Length 関数

文字列の長さを返します。

構文

length(x)

パラメーター

パラメーター

説明

x

varchar 値。

戻り値

bigint

http_user_agent フィールド値の長さを計算します。

  • フィールド例

    http_user_agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2
  • クエリ文 (テスト)

    * | SELECT
      length(http_user_agent)
  • クエリと分析の結果は 127 であり、http_user_agent フィールドの値の文字列長を表します。

levenshtein_distance

2 つの文字列間の最小編集距離を計算します。

構文

levenshtein_distance(x, y)

パラメーター

パラメーター

説明

x

varchar 型の値。

y

varchar 型の値。

戻り値

bigint

instance_id フィールドと owner_id フィールドの値の間の最小編集距離をクエリします。

  • フィールド例

    instance_id:i-01
    owner_id:owner-01
  • クエリと分析の文 (デバッグ)

    * | SELECT
      levenshtein_distance(owner_id, instance_id)
  • クエリと分析の結果は 5 です。

Lower 関数

文字列を小文字に変換します。

構文

lower(x)

パラメーター

パラメーター

説明

x

varchar 文字列。

戻り値の型

varchar

request_method フィールドの値を小文字に変換します。

  • フィールド例

    request_method:GET
  • クエリと分析の文 (デバッグ)

    * | SELECT
      lower(request_method)
  • クエリと分析の結果は get です。

lpad 関数

lpad 関数は、文字列の左側に指定された文字をパディングして、指定された長さにします。

構文

lpad(x, length, lpad_string)

パラメーター

パラメーター

説明

x

値は varchar 型である必要があります。

length

結果の文字列の目的の長さを指定する整数。

  • 元の文字列が length より短い場合、関数は左側にパディングします。

  • 元の文字列が length より長い場合、関数は文字列を length 文字に切り詰めます。

lpad_string

パディングに使用する文字または文字列。

戻り値の型

varchar

instance_id フィールドの値を先頭ゼロで 10 桁の長さにパディングします。

  • フィールド例

    instance_id:i-01
  • クエリ文 (テスト)

    * | SELECT
      lpad(instance_id, 10, '0')
  • クエリと分析の結果では、_col0 列の戻り値は 000000i-01 です。

ltrim 関数

文字列の先頭のスペースを削除します。

構文

ltrim(x)

パラメーター

パラメーター

説明

x

入力文字列。varchar 型である必要があります。

戻り値の型

varchar

region フィールドの値から先頭のスペースを削除します。

  • フィールド例

    region: cn-shanghai
  • クエリと分析の文 (テスト)

    * | SELECT
      ltrim(region)
  • 結果は cn-shanghai です。

Normalize 関数

正規化形式 C (NFC) 形式を使用して文字列を正規化します。

構文

normalize(x)

パラメーター

パラメーター

説明

x

正規化する varchar 文字列。

戻り値の型

varchar

この例では、文字列 schön を NFC 形式を使用して正規化します。

  • クエリ文 (デバッグ)

    * | SELECT
      normalize('schön')
  • クエリと分析の結果は 1 行 1 列を返し、列名は _col0、値は schön です。

Position 関数

文字列内の部分文字列の開始位置を返します。

構文

position(sub_string in x)

パラメーター

パラメーター

説明

sub_string

検索する部分文字列。

x

検索する文字列。varchar 型である必要があります。

戻り値の型

部分文字列の 1 から始まる開始位置を表す整数を返します。部分文字列が見つからない場合、関数は 0 を返します。

region フィールド内の部分文字列 cn の位置を見つけます。

  • フィールド例

    region:cn-shanghai
  • クエリと分析の文 (テスト)

    * | SELECT
      position('cn' in region)
  • クエリと分析の結果:_col0 列は 1 を返します。これは、部分文字列 cn が文字列 cn-shanghai の位置 1 から始まることを示します。

Replace 関数

replace 関数は、文字列内の指定された部分文字列のすべての出現箇所を削除または置換します。

構文

  • 文字列から部分文字列のすべての出現箇所を削除します。

    replace(x, sub_string)
  • 部分文字列のすべての出現箇所を別の文字列に置き換えます。

    replace(x, sub_string, replace_string)

パラメーター

パラメーター

説明

x

ソース文字列。データ型は varchar である必要があります。

sub_string

削除または置換する部分文字列。

replace_string

置換文字列。

戻り値の型

varchar

  • 例 1:region フィールド値で、cn中国 に置き換えます。

    • フィールド例

      region:cn-shanghai
    • クエリと分析の文 (デバッグ)

      * | select
        replace(region, 'cn', '中国')
    • クエリと分析の結果では、_col0 列の値は 中国-shanghai です。

  • 例 2:region フィールドの値から cn- を削除します。

    • フィールド例

      region:cn-shanghai
    • クエリと分析の文 (デバッグ)

      * | select
        replace(region, 'cn-')
    • クエリと分析の結果は shanghai です。

Reverse 関数

reverse 関数は、文字を逆の順序で並べた文字列を返します。

構文

reverse(x)

パラメーター

パラメーター

説明

x

入力文字列。varchar 型である必要があります。

戻り値の型

varchar

request_method フィールドの値を反転させます。

  • フィールド例

    request_method:GET
  • クエリ文 (テスト)

    * | SELECT
      reverse(request_method)
  • 結果は TEG です。

rpad 関数

文字列の右側に指定された文字をパディングして、指定された長さにします。

構文

rpad(x, length, rpad_string)

パラメーター

パラメーター

説明

x

ソース文字列。varchar 型である必要があります。

length

結果の文字列の目的の長さを整数で指定します。

  • 元の文字列が length より短い場合、関数は右側にパディングします。

  • 元の文字列が length より長い場合、関数は文字列を length 文字に切り詰めます。

rpad_string

パディングに使用する文字または文字列。

戻り値の型

varchar

次の例では、instance_id フィールドの値を末尾のゼロで 10 の長さにパディングします。

  • フィールド例

    instance_id:i-01
  • クエリ文 (デバッグ)

    * | SELECT
      rpad(instance_id, 10, '0')
  • クエリと分析の結果:_col0 列は値 i-01000000 を返します。

rtrim 関数

文字列の末尾のスペースを削除します。

構文

rtrim(x)

パラメーター

パラメーター

説明

x

ソース文字列。varchar である必要があります。

戻り値の型

varchar

このクエリは、instance_id フィールドの値から末尾のスペースを削除します。

  • フィールド例

    instance_id:i-01 
  • クエリ文 (デバッグ)

    * | SELECT
      rtrim(instance_id)
  • クエリと分析の結果:_col0 列の戻り値は i-01 です。

split 関数

split 関数は、区切り文字を使用して文字列を部分文字列の配列に分割します。

構文

  • 区切り文字で文字列を分割します。

    split(x, delimiter)
  • 区切り文字で文字列を最大数の部分文字列に分割します。

    split(x,delimiter,limit)

パラメーター

パラメーター

説明

x

分割する varchar 文字列。

delimiter

文字列を分割するために使用されるデリミタ。

limit

返す部分文字列の最大数。値は正の整数である必要があります。

戻り値の型

array

  • 例 1:request_uri フィールドの値をスラッシュ (/) を使用して 4 つの部分文字列に分割し、これらの部分文字列の配列を返します。

    • フィールド例

      request_uri:/request/path-1/file-9
    • クエリと分析の文 (テスト)

      * | SELECT
        split(request_uri, '/')
    • クエリと分析の結果:クエリは ["" ,"request","path-1","file-9"] を返します。これは、request_uri/ で分割して作成された配列です。

  • 例 2:スラッシュ (/) を使用して request_uri フィールドの値を 3 つの部分文字列に分割し、部分文字列のコレクションを返します。

    • フィールド例

      request_uri:/request/path-1/file-9
    • クエリと分析の文 (テスト)

      * | SELECT
        split(request_uri, '/', 3)
    • クエリと分析の結果では、_col0 列の値は ["","request","path-1/file-9"] です。

Split_part 関数

指定された区切り文字で文字列を分割し、指定されたインデックスの部分文字列を返します。

構文

split_part(x, delimiter, part)

パラメーター

パラメーター

説明

x

分割する文字列。この値は varchar である必要があります。

delimiter

区切り文字として使用される空でない文字列。

part

返す部分文字列の 1 から始まるインデックスを指定する整数式。値は 0 より大きい必要があります。

戻り値

varchar

request_uri フィールドの値を疑問符 (?) で分割し、最初の部分文字列 (ファイルパス) を返します。次に、各パスのリクエスト数をカウントします。

  • フィールド例

    request_uri: /request/path-2/file-6?name=value&age=18
    request_uri: /request/path-2/file-0?name=value&age=18
    request_uri: /request/path-3/file-2?name=value&age=18
  • クエリ文 (テスト)

    * | SELECT
      count(*) AS PV,
      split_part(request_uri, '?', 1) AS Path
    GROUP BY
      Path
    ORDER BY
      pv DESC
  • クエリと分析の結果:/request/path-2/file-6 の PV は 49、/request/path-2/file-0 の PV は 47、/request/path-3/file-2 の PV は 44 です。

split_to_map 関数

split_to_map 関数は、2 つのデリミタを使用してキーと値のペアの文字列をマップに解析します。

構文

split_to_map(x, delimiter01, delimiter02)

パラメーター

パラメーター

説明

x

解析する入力文字列。varchar 型である必要があります。

delimiter01

キーと値のペアを区切るデリミタ。

delimiter02

各ペアのキーと値を区切るデリミタ。

戻り値の型

map

英語のコンマ (,) と英語のコロン (:) を使用して time フィールドの値を分割し、MAP を返します。

  • フィールド例

    upstream_response_time:"80",request_time:"40"
  • クエリと分析の文

    * | SELECT
      split_to_map(time, ',', ':')
  • この関数はマップを返します。クエリと分析の結果では JSON 形式で表示されます:{"request_time":"\"40\"","upstream_response_time":"\"80\""}

Strpos 関数

strpos 関数は、文字列内の部分文字列の開始位置を返します。これは position 関数のエイリアスです。

構文

strpos(x, sub_string)

パラメーター

パラメーター

説明

x

検索対象のソース文字列。varchar である必要があります。

sub_string

検索する部分文字列。

戻り値の型

部分文字列の 1 から始まる開始位置を表す整数を返します。部分文字列が見つからない場合は 0 を返します。

この例では、server_protocol フィールド内の文字 'H' の位置を見つけます。

  • クエリ文 (テスト)

    * | SELECT
      strpos(server_protocol, 'H')
  • クエリと分析の結果:_col0 列は 2 行のデータを返し、両方とも値 1 です。これは、server_protocol フィールドで文字 H が最初に出現する位置が 1 であることを示します。

substr 関数

substr 関数は、指定された位置から始まる部分文字列を文字列から抽出します。

構文

  • 指定された開始位置から文字列の末尾までの部分文字列を抽出します。

    substr(x, start)
  • 指定された位置から始まる、指定された長さの部分文字列を文字列から抽出します。

    substr(x,start,length)

パラメーター

パラメーター

説明

x

ソース文字列。varchar 型である必要があります。

start

抽出の 1 から始まる開始位置。

length

抽出する文字数を指定するオプションの整数。このパラメーターを省略すると、関数は start 位置から文字列の末尾までのすべての文字を抽出します。

戻り値の型

varchar

server_protocol フィールドの値から最初の 4 文字 (HTTP 部分) を抽出し、HTTP リクエストの数をカウントします。

  • フィールド例

    server_protocol:HTTP/2.0
  • クエリ文 (テスト)

    * | SELECT
      substr(server_protocol, 1, 4) AS protocol,
      count(*) AS count
    GROUP BY
      protocol
  • クエリと分析の結果では、protocol 列の値は HTTPcount 列の値は 9078 です。

to_utf8 関数

文字列を UTF-8 バイナリ表現にエンコードします。

構文

to_utf8(x)

パラメーター

パラメーター

説明

x

エンコードする文字列。これは varchar である必要があります。

戻り値の型

varbinary

文字列 'log' を UTF-8 形式にエンコードします。

  • クエリ文 (テスト)

    * | SELECT
      to_utf8('log')
  • クエリと分析の結果では、_col0 列の戻り値は bG9n です。

Trim 関数

文字列の先頭と末尾のスペースを削除します。

構文

trim(x)

パラメーター

パラメーター

説明

x

入力文字列。varchar である必要があります。

戻り値の型

varchar

instance_id フィールドの値から先頭と末尾のスペースを削除します。

  • フィールド例

    instance_id: i-01 
  • クエリと分析の文 (テスト)

    * | SELECT
      trim(instance_id)
  • クエリと分析の結果:i-01

Upper 関数

文字列を大文字に変換します。

構文

upper(x)

パラメーター

パラメーター

説明

x

値は varchar 型である必要があります。

戻り値の型

varchar

この例では、region フィールドの値を大文字に変換します。

  • フィールド例

    region:cn-shanghai
  • クエリ文 (テスト)

    * | SELECT
      upper(region)
  • クエリと分析の結果は CN-SHANGHAI です。

csv_extract_map 関数

csv_extract_map 関数は、単一行の CSV 文字列を解析し、マップを返します。

構文

csv_extract_map(x, delimiter, quote, keys)

パラメーター

パラメーター

説明

x

単一行の CSV テキストを含む varchar 文字列。

delimiter

文字列内の値を区切る単一の varchar 文字。

quote

値を囲むために使用される単一の varchar 文字。

keys

抽出された値のキー名を定義する文字列の配列。キーの数は CSV 文字列の値の数と一致する必要があります。一致しない場合、関数は null を返します。

戻り値の型

map(varchar, varchar)

この例では、content フィールドから CSV 情報を抽出します。

  • フィールド例

    content: '192.168.0.100,"10/Jun/2019:11:32:16,127 +0800",example.aliyundoc.com'
  • クエリ文

    select csv_extract_map(content, ',', '"', array['ip', 'time', 'host']) as item
  • 出力データ

    クエリは次の JSON レコードを返します:{"ip":"192.168.0.100","host":"example.aliyundoc.com","time":"10/Jun/2019:11:32:16,127 +0800"}

ilike 関数

大文字と小文字を区別せずに、文字列が指定されたパターンに一致するかどうかをチェックします。

構文

ilike(x, pattern)

パラメーター

パラメーター

説明

x

評価する文字列。varchar 型である必要があります。

pattern

文字パターン。パターンには次のワイルドカード文字を含めることができます:

  • パーセント記号 (%) は、0 文字以上の任意のシーケンスに一致します。

  • アンダースコア (_) は、単一の文字に一致します。

戻り値の型

boolean

この例では、request_uri の値が file-6 で終わるかどうかをチェックします。

  • フィールド例

request_uri: '/request/path-2/File-6'
  • クエリ文

select ilike(request_uri, '%file-6')
  • クエリと分析の結果

クエリと分析の結果は true であり、request_urifile-6 で終わることを示します。

str_uuid

str_uuid() 関数は、ランダムな 128 ビットの識別子を文字列として返します。

構文

str_uuid()

戻り値

  • 戻り値の型: VARCHAR

  • フォーマット: 32 個の 16 進数と 4 つのハイフン - を持つ 36 文字の文字列。

  • 構造: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

シミュレートされたテスト環境で一意の識別子を大量に生成するには:

* | extend uuid = str_uuid()

Gzip_compress 関数

gzip_compress 関数は、GZIP アルゴリズムを使用して文字列を圧縮し、圧縮されたバイナリデータを返します。

構文

-- 方法 1:デフォルトの圧縮レベル (6)
gzip_compress(data)
-- 方法 2:圧縮レベルを指定
gzip_compress(data, compression_level)

パラメーター

パラメーター

説明

data

VARCHAR

圧縮する文字列。

compression_level

BIGINT

圧縮レベル、1 から 9 までのオプションの整数。

戻り値

  • 戻り値の型VARBINARY

  • 説明:圧縮されたバイナリデータ。

  • 例 1:基本的な圧縮

    * | extend compress_data =  gzip_compress('Hello World')
  • 例 2:大きなテキストで最大の圧縮を実現する

    大きなログ (数万文字) の圧縮を最大化し、ストレージスペースを節約するには、レベル 9 を使用します:

    * | extend compress_data =  gzip_compress('Hello World',9)

gzip_decompress

gzip_decompress は、GZIP 圧縮されたバイナリデータ (Varbinary) を解凍し、元のプレーンテキストコンテンツを返します。

構文

gzip_decompress(binary_data)

パラメーター

binary_data は、有効な GZIP 圧縮データである必要があり、通常は gzip_compress 関数によって生成されます。入力が標準の GZIP 形式でない場合、関数は NULL を返します。

戻り値

  • 戻り値の型VARCHAR

  • 説明:解凍後の元のプレーンテキストコンテンツ。


  • 単純な圧縮と解凍のパイプライン:

    * | extend original_content =  gzip_decompress(gzip_compress('Hello SLS!'))
    -- 出力: "Hello SLS!"

Search 関数

search 関数は、SQL 分析文でログデータに対して全文検索を実行します。標準の SQL 関数として、ブール演算、フィールドクエリ、あいまいクエリ、範囲クエリなどの複雑なクエリ条件をサポートします。

制限事項

制限事項

説明

サブクエリごとの制限

各サブクエリ (基になる SELECT) では、search() 関数を 1 つしか使用できません。複数のクエリ条件が必要な場合は、条件を 1 つの search() 呼び出しに結合します。例:search('error AND timeout')

OR 演算子の制限

search() 関数は SQL の OR 演算子と組み合わせることはできません。ただし、search() 関数内で OR 演算子を使用することはできます。たとえば、search('error OR warning') は許可されます。

インデックスが作成されており、スキャンモードではないこと。

search 関数はスキャンモードではサポートされていません。

クエリ構文の競合

クエリ構文の入力に実際のフィルター条件が含まれている場合、search 関数は使用できません。クエリ構文の入力が空または * の場合にこの関数を使用できます。

パラメーターの型

search() 関数のパラメーターは文字列リテラルである必要があります。この関数は、列参照、変数、関数式などの動的な値をサポートしていません。

パラメーターの数

この関数は、正確に 1 つのパラメーターを取る必要があります。

構文

search(search_expression)

SQL 分析文での使用法:

* | SELECT ... FROM log WHERE search('search_expression')

重要:search 関数は WHERE 句でのみ使用できます。

パラメーター

パラメーター

説明

search_expression

search_expression は、クエリ式を表す文字列リテラルです。SLS クエリ構文に完全に準拠する必要があり、クエリ構文と特徴で説明されている全文クエリ、フィールドクエリ、ブール演算、あいまいクエリ、範囲クエリなどの同じ機能を提供します。

戻り値の型

BOOLEAN 型。true は現在の行がクエリ条件に一致することを示し、false は一致しないことを示します。

  • 例 1:errortimeout の両方を含むログを検索します。

    * | SELECT * FROM log WHERE search('error AND timeout')
  • 例 2:status フィールドが 200 のログを検索します。

    * | SELECT * FROM log WHERE search('status: 200')
  • 例 3:search() 関数と SQL 述語を組み合わせて、status200request_time100 より大きいログを検索します。

    * | SELECT * FROM log
        WHERE search('status: 200') AND request_time > 100

    詳細については、「search 関数を使用して全文検索を実行する」をご参照ください。