全部产品
Search
文档中心

Simple Log Service:Sintaks string kueri

更新时间:Nov 09, 2025

Sintaks string kueri merupakan fitur dari bahasa domain-spesifik (DSL) Simple Log Service (SLS). Sintaks ini dapat digunakan untuk menyaring data dengan cepat dan menyederhanakan pernyataan kondisional. Topik ini menjelaskan aturan sintaks umum untuk string kueri.

Daftar fungsi

Anda dapat menggunakan sintaks string kueri dengan fungsi-fungsi berikut ini.

Tipe

Fungsi

Skenario

Fungsi pemeriksaan event

e_search

Gunakan string kueri untuk memeriksa apakah nilai bidang dalam sebuah event memenuhi kondisi tertentu.

Fungsi sumber daya

res_log_logstore_pull

Mendapatkan data dari penyimpanan log dan mengembalikannya sebagai tabel. Gunakan string kueri untuk mengonfigurasi daftar hitam dan daftar putih untuk penyaringan.

res_rds_mysql

Mendapatkan data dari database RDS for MySQL dan mengembalikannya sebagai tabel. Gunakan string kueri untuk mengonfigurasi daftar hitam dan daftar putih untuk penyaringan.

Ikhtisar fitur

Tabel berikut mencantumkan fitur pencarian yang mendukung pencarian bidang dan pencarian teks penuh.

Fitur

Field Search

Pencarian teks penuh

Pencarian substring

Didukung

Didukung

Pencarian wildcard (*?)

Didukung

Didukung

Pencocokan tepat

Didukung

Tidak didukung

Pencarian ekspresi reguler

Didukung

Tidak didukung

Pencarian rentang numerik

Didukung

Tidak didukung

Perbandingan numerik

Didukung

Tidak didukung

Operator logika (and, or, not) dan kombinasi

Didukung

Didukung

Karakter escaping

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

  • Meloloskan Nama Bidang

    Nama bidang tidak boleh diletakkan di dalam tanda kutip ganda (""). Jika nama bidang mengandung karakter khusus, loloskan dengan garis miring terbalik (\). Contohnya:

    • \*\(1+1\)\?: abc: Loloskan karakter khusus menggunakan garis miring terbalik (\).

    • __tag__\:__container_name__: abc: Loloskan karakter khusus menggunakan garis miring terbalik (\).

    • Chinese_Field: abc: Tidak perlu meloloskan karakter Cina.

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

  • Meloloskan Nilai Pencarian

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

      Catatan

      Nilai pencarian hanya dapat diletakkan di dalam tanda kutip ganda (""). Gunakan tanda kutip tunggal ('') untuk mengapit string luar dan tanda kutip ganda ("") untuk mengapit nilai pencarian dalam. Contohnya, e_search("domain: '/url/test.jsp'") salah. Format yang benar adalah e_search('domain: "/url/test.jsp"').

    • Saat mencari tanda bintang (*) atau tanda tanya (?), loloskan dengan garis miring terbalik (\). Jika tidak, karakter tersebut akan diperlakukan sebagai karakter wildcard.

    • Jika nilai hanya berisi karakter Cina, huruf, angka, garis bawah (_), tanda hubung (-), tanda bintang (*), atau tanda tanya (?), Anda tidak perlu meletakkannya di dalam tanda kutip ganda (""). Dalam semua kasus lainnya, nilai harus diletakkan di dalam tanda kutip ganda (""). Contohnya:

      • status: "\*\?()[]:=": Letakkan nilai di dalam tanda kutip ganda ("") dan loloskan tanda bintang (*) serta tanda tanya (?) dengan garis miring terbalik (\). Karakter lainnya tidak perlu diloloskan.

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

      • status: active\*test, status: active\?test: Nilai bidang hanya berisi huruf, tanda bintang (*), dan tanda tanya (?). Dalam hal ini, Anda hanya perlu meloloskan tanda bintang (*) atau tanda tanya (?). Anda tidak perlu meletakkan nilai di dalam tanda kutip ganda ("").

Pencarian substring

  • Pencarian Teks Penuh

    Mencari substring di semua bidang.

    • Sintaks

      e_search('substring')
    • Contoh

      • e_search('"fault"'): Mencari substring Cina.

      • e_search('"active error"'): Mencari substring lengkap yang berisi spasi.

      • e_search('active error'): Mencari beberapa substring. Operator OR digunakan secara default di antara substring.

  • Pencarian Bidang

    Mencari substring di bidang tertentu.

    • Sintaks

      e_search('...')
    • Contoh

      • e_search('status: active'): Melakukan pencarian substring.

      • e_search('author: "john smith"'): Mencari substring yang berisi spasi.

      Catatan

      e_search('field: active error') setara dengan field:active OR "error". Kueri ini mencari "active" di bidang field atau melakukan pencarian teks penuh untuk "error".

Pencarian wildcard

Tanda bintang (*) mewakili nol atau lebih karakter, sedangkan tanda tanya (?) mewakili satu karakter. Keduanya juga dapat digunakan untuk mewakili karakter lebar seperti karakter Cina.

  • Pencarian Teks Penuh

    Cari substring di semua bidang.

    • Sintaks

      e_search('substring')
    • Contoh

      • e_search('active*test'): Cocokkan nol atau lebih karakter. Karena string berisi tanda bintang (*), tidak perlu meletakkannya di dalam tanda kutip ganda ("").

      • e_search('occurs*fault'): Cocokkan nol atau lebih karakter. Dapat cocok dengan occurs fault dan occurs critical fault.

      • e_search('active?good'): Cocokkan satu karakter. Karena string berisi tanda tanya (?), tidak perlu meletakkannya di dalam tanda kutip ganda ("").

      • e_search('ac*tive?good'): Melakukan pencocokan pola.

      • e_search('ac*tive??go*od'): Anda dapat menggunakan beberapa wildcard secara bersamaan.

  • Pencarian Bidang

    Cari substring di bidang tertentu.

    • Sintaks

      e_search('field_name:substring')
    • Contoh

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

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

Cocok tepat

Pencocokan tepat mengharuskan nilai bidang cocok sepenuhnya dari awal hingga akhir.

  • Sintaks

    e_search('field_name==exact_match_string')
  • Contoh

    • e_search('author== "john smith"'): Nilai bidang author persis sama dengan john smith.

    • e_search('status== ac*tive?good'): Operator ini dapat digunakan bersama karakter wildcard.

Pencocokan ekspresi reguler

Pencocokan ekspresi reguler merupakan metode pencocokan yang lebih kuat dibandingkan pencocokan wildcard.

  • Sintaks

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

    • Secara default, pencocokan sebagian dilakukan. Untuk pencocokan tepat, tambahkan ^ di awal dan $ di akhir ekspresi.

  • Contoh

    • e_search('status~= "\d+"'): Nilai bidang status berisi digit.

    • e_search('status~= "^\d+$"'): Nilai bidang status adalah angka.

Perbandingan numerik

Anda dapat membandingkan nilai numerik.

  • Perbandingan Numerik Langsung

    Anda dapat menggunakan >, >=, =, <, dan <= untuk melakukan 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

    Anda dapat menggunakan interval tertutup. Gunakan tanda bintang (*) untuk menunjukkan batas terbuka.

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

Hubungan logika

Hubungan logika antara pencarian didukung. Anda juga dapat menggunakan tanda kurung () untuk nesting.

Hubungan logika

Kata kunci

AND

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

OR

or, OR, dan lainnya. Kata kunci tidak peka huruf besar/kecil.

NOT

not, NOT, !, dan lainnya. 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

Pencocokan substring juga mendukung hubungan logika:

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

Anda dapat menggunakan string kueri untuk memeriksa bidang.

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

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

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

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

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

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

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

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