All Products
Search
Document Center

Simple Log Service:Sintaks string kueri

Last Updated:Mar 14, 2026

Sintaks string kueri merupakan fitur Domain-Specific Language (DSL) Simple Log Service (SLS) yang memungkinkan Anda memfilter data dengan cepat dan menyederhanakan pernyataan kondisional. Topik ini menjelaskan aturan sintaks umum untuk string kueri.

Daftar fungsi

Fungsi-fungsi berikut mendukung sintaks string kueri.

Type

Function

Scenario

Event check function

e_search

Gunakan string kueri untuk menentukan apakah nilai bidang suatu event memenuhi kondisi tertentu.

Resource function

res_log_LogStore_pull

Mengambil dan mengembalikan data tabular dari Logstore. Mendukung pemfilteran dengan daftar hitam dan daftar putih yang dikonfigurasi melalui string kueri.

res_rds_mysql

Mengambil dan mengembalikan data tabular dari RDS MySQL. Mendukung pemfilteran dengan daftar hitam dan daftar putih yang dikonfigurasi melalui string kueri.

Ikhtisar fitur

Tabel berikut mencantumkan fitur pencarian yang mendukung pencarian berdasarkan bidang (field search) dan pencarian teks lengkap (full text search).

Feature

Field search

Full text search

Substring search

Didukung

Didukung

Wildcard search menggunakan *?

Didukung

Didukung

Exact match search

Didukung

Tidak didukung

Regular expression search

Didukung

Tidak didukung

Numeric range search

Didukung

Tidak didukung

Numeric comparison

Didukung

Tidak didukung

Logical operators: and, or, not, dan kombinasi

Didukung

Didukung

Pelarian karakter

Dalam sintaks string kueri, Anda harus melakukan pelarian (escape) terhadap karakter khusus seperti tanda bintang (*) dan garis miring terbalik (\).

  • Pelarian nama bidang

    Jangan membungkus nama bidang dalam tanda kutip ganda (""). Jika nama bidang mengandung karakter khusus, lakukan pelarian dengan garis miring terbalik (\). Contohnya:

    • \*\(1+1\)\?: abc: Lakukan pelarian dengan garis miring terbalik (\).

    • __tag__\:__container_name__: abc: Lakukan pelarian dengan garis miring terbalik (\).

    • chinese_field: abc: Karakter Tionghoa tidak perlu dilakukan pelarian.

    • "content": abc: Definisi tidak valid. Jangan membungkus nama bidang dalam tanda kutip ganda ("").

  • Escape nilai pencarian

    • Jika nilai mengandung tanda kutip ganda ("") atau garis miring terbalik (\), lakukan pelarian dengan garis miring terbalik (\). Contohnya, content: "abc\"xy\\z".

      Catatan

      Nilai pencarian harus dibungkus dalam tanda kutip ganda (""). Anda dapat membungkus string luar dengan tanda kutip tunggal ('') dan nilai pencarian dalam dengan tanda kutip ganda (""). Contohnya, e_search("domain: '/url/test.jsp'") salah. Format yang benar adalah e_search('domain: "/url/test.jsp"').

    • Ketika Anda mencari tanda bintang (*) atau tanda tanya (?), lakukan pelarian dengan garis miring terbalik (\). Jika tidak, karakter tersebut akan dianggap sebagai karakter wildcard.

    • String yang hanya berisi karakter Tionghoa, huruf, angka, garis bawah (_), tanda hubung (-), tanda bintang (*), atau tanda tanya (?) tidak memerlukan tanda kutip ganda (""). Jika tidak, Anda harus membungkus string tersebut dalam tanda kutip ganda (""). Contohnya:

      • status: "\*\?()[]:=": Bungkus nilai dalam tanda kutip ganda (""). Lakukan pelarian terhadap tanda bintang (*) dan tanda tanya (?) dengan garis miring terbalik (\). Karakter lain tidak perlu dilakukan pelarian.

      • content: ()[]:=: Definisi tidak valid. Nilai harus dibungkus dalam tanda kutip ganda ("").

      • status: active\*test dan status: active\?test: Nilai bidang hanya berisi huruf dan tanda bintang (*) atau tanda tanya (?). Anda hanya perlu melakukan pelarian terhadap tanda bintang (*) atau tanda tanya (?). Tidak perlu membungkus nilai dalam tanda kutip ganda ("").

Pencarian substring

  • Pencarian teks lengkap

    Cari substring di seluruh bidang.

    • Sintaks

      e_search('substring')
    • Contoh

      • e_search('"error"'): Cari substring.

      • e_search('"active error"'): Cari substring lengkap yang mengandung spasi.

      • e_search('active error'): Cari beberapa substring. Substring-substring tersebut secara default digabungkan dengan operator OR.

  • Pencarian berdasarkan bidang

    Cari substring dalam bidang tertentu.

    • Sintaks

      e_search('...')
    • Contoh

      • e_search('status: active'): Pencarian substring.

      • e_search('author: "john smith"'): Cari substring yang mengandung spasi.

      Catatan

      e_search('field: active error') setara dengan field:active OR "error". Ini mencari `active` di bidang field atau melakukan pencarian teks lengkap untuk `error`.

Pencarian wildcard

Tanda bintang (*) merepresentasikan nol atau lebih karakter. Tanda tanya (?) merepresentasikan satu karakter, termasuk karakter lebar seperti karakter Tionghoa.

  • Pencarian teks lengkap

    Cari substring di seluruh bidang.

    • Sintaks

      e_search('substring')
    • Contoh

      • e_search('active*test'): Cocok dengan nol atau lebih karakter. Karena string mengandung tanda bintang (*), Anda tidak perlu membungkusnya dalam tanda kutip ganda ("").

      • e_search('occurs*error'): Cocok dengan nol atau lebih karakter. Misalnya, dapat mencocokkan occurs error dan occurs critical error.

      • e_search('active?good'): Cocok dengan satu karakter. Karena string mengandung tanda tanya (?), Anda tidak perlu membungkusnya dalam tanda kutip ganda ("").

      • e_search('ac*tive?good'): Cocok dengan pola tertentu.

      • e_search('ac*tive??go*od'): Mendukung beberapa wildcard.

  • Pencarian berdasarkan bidang

    Cari substring dalam bidang tertentu.

    • Sintaks

      e_search('field_name:substring')
    • Contoh

      • e_search('status: active*test'): Cocok dengan nol atau lebih karakter.

      • e_search('status: active?good'): Cocok dengan satu karakter.

Pencocokan eksak

Pencocokan eksak mengharuskan seluruh nilai bidang cocok persis.

  • Sintaks

    e_search('field_name==exact_match_string')
  • Contoh

    • e_search('author== "john smith"'): Bidang author cocok persis dengan john smith.

    • e_search('status== ac*tive?good'): Gunakan bersama karakter wildcard.

Pencocokan ekspresi reguler

Pencocokan ekspresi reguler lebih kuat dibandingkan pencocokan wildcard.

  • Sintaks

    e_search('field_name~=regular_expression_string')
    Catatan
    • Karena ekspresi reguler dapat mengandung garis miring terbalik (\), gunakan r untuk mencegah pelarian.

    • Secara default, ini melakukan pencocokan parsial. Untuk melakukan pencocokan eksak, tambahkan ^ di awal dan $ di akhir ekspresi.

  • Contoh

    • e_search('status~= "\d+"'): Bidang status mengandung angka.

    • e_search('status~= "^\d+$"'): Bidang status berupa angka.

Perbandingan numerik

Bandingkan nilai numerik.

  • Perbandingan numerik langsung

    Gunakan operator >, >=, =, <, dan <= untuk perbandingan.

    e_search('age >= 18')  #  >=18
    e_search('age > 18')   #  > 18
    e_search('age = 18')   #  = 18
    e_search('age <= 18')  #  <=18
    e_search('age < 18')   #  < 18
  • Perbandingan rentang numerik

    Gunakan interval tertutup. Anda dapat menggunakan tanda bintang (*) untuk menentukan tanpa batas.

    e_search('count: [100, 200]') # >=100 dan  <=200
    e_search('count: [*, 200]')   # <=200
    e_search('count: [200, *]')   # >=200

Hubungan logika

Anda dapat menggabungkan pencarian apa pun dengan operator logika. Anda juga dapat menggunakan tanda kurung () untuk menyusun kondisi secara bersarang.

Logical Relationship

Keyword

AND

and, AND, dan &&. Kata kunci tidak peka huruf besar/kecil.

OR

or, OR, dll., tidak peka huruf besar/kecil.

NOT

not, NOT, dan !. Kata kunci tidak peka huruf besar/kecil.

Contoh:

e_search('abc OR xyz')    # Operator relasional tidak peka huruf besar/kecil
e_search('abc and (xyz or zzz)')
e_search('abc and not (xyz and not zzz)')
e_search('abc && xyz')    # and
e_search('abc || xyz')    # or
e_search('abc || !xyz')   # or not

Hubungan logika juga didukung untuk pencocokan substring:

e_search('field: (abc OR xyz)')      # Bidang berisi abc atau xyz
e_search('field: (abc OR not xyz)')  # Bidang berisi abc atau tidak berisi xyz
e_search('field: (abc && !xyz)')     # Bidang berisi abc dan tidak berisi xyz

Pemeriksaan bidang

Gunakan string pencarian untuk memverifikasi apakah suatu bidang ada atau memenuhi kondisi tertentu.

  • e_search('field: *'): Bidang ada.

  • e_search('not field:*'): Bidang tidak ada.

  • e_search('not field:""'): Bidang tidak ada.

  • e_search('field: "?"'): Bidang ada dan nilainya tidak kosong.

  • e_search('field==""'): Bidang ada dan nilainya kosong.

  • e_search('field~=".+"'): Bidang ada dan nilainya tidak kosong.

  • e_search('not field~=".+"'): Bidang tidak ada atau nilainya kosong.

  • e_search('not field==""'): Bidang tidak ada atau nilainya tidak kosong.