

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# filter
<a name="CWL_QuerySyntax-Filter"></a>

 Gunakan `filter` untuk mendapatkan peristiwa log yang cocok dengan satu atau lebih kondisi. 

 **Contoh: Memfilter peristiwa log menggunakan satu kondisi ** 

 Cuplikan kode menunjukkan contoh kueri yang mengembalikan semua peristiwa log di mana nilai untuk `range` lebih besar dari ** * 3000 ***. Kueri membatasi hasil untuk 20 peristiwa log dan mengurutkan peristiwa log dengan `@timestamp` dan dalam urutan menurun. 

```
fields @timestamp, @message
| filter (range>3000)
| sort @timestamp desc
| limit 20
```

 **Contoh: Memfilter peristiwa log menggunakan lebih dari satu kondisi ** 

 Anda dapat menggunakan kata kunci `and` dan `or` menggabungkan lebih dari satu kondisi. 

 Cuplikan kode menunjukkan contoh kueri yang mengembalikan peristiwa log di mana nilai untuk lebih besar dari ** * 3000 * ** dan nilai untuk `range` sama dengan ** * 123 * ** 4567 `accountId` 89012. Kueri membatasi hasil untuk 20 peristiwa log dan mengurutkan peristiwa log dengan `@timestamp` dan dalam urutan menurun. 

```
fields @timestamp, @message
| filter (range>3000 and accountId=123456789012)
| sort @timestamp desc
| limit 20
```

## Bidang yang diindeks dan perintah filter
<a name="CWL_QuerySyntax-index"></a>

Jika Anda telah membuat indeks bidang untuk grup log, Anda dapat menggunakan indeks bidang tersebut untuk membuat `filter` kueri Anda lebih efisien dan mengurangi volume yang dipindai. Misalnya, Anda telah membuat indeks bidang untuk`requestId`. Kemudian, kueri CloudWatch Logs Wawasan apa pun pada grup log yang menyer `filter requestId IN [{{value}}, {{value}}, ...]` takan `filter requestId = {{value}}` atau akan mencoba melewatkan peristiwa log pemrosesan yang diketahui tidak menyertakan bidang yang diindeks. Dengan mencoba memindai hanya peristiwa log yang diketahui berisi bidang yang diindeks, volume pemindaian dapat dikurangi dan kueri lebih cepat.

Untuk informasi selengkapnya tentang indeks bidang dan cara membuatnya, lihat[Buat indeks bidang untuk meningkatkan kinerja kueri dan mengurangi volume pemindaian](CloudWatchLogs-Field-Indexing.md).

**penting**  
Hanya kueri dengan `filter {{fieldName}} =...` dan `filter {{fieldName}} IN...` akan mendapat manfaat dari peningkatan indeks lapangan. Kueri dengan `filter {{fieldName}} like` tidak menggunakan indeks dan selalu memindai semua peristiwa log di grup log yang dipilih.

**Contoh: Menemukan peristiwa log yang terkait dengan ID permintaan tertentu, menggunakan indeks ** 

 Contoh ini mengasumsikan bahwa Anda telah membuat indeks bidang pada`requestId`. Untuk grup log yang menggunakan indeks bidang ini, kueri akan menggunakan indeks bidang untuk mencoba memindai jumlah kejadian log paling sedikit untuk menemukan peristiwa `requestId` dengan nilai `123456` 

```
fields @timestamp, @message
| filter requestId = "1234656"
| limit 20
```

## Cocokkan dan ekspresi reguler dalam perintah filter
<a name="CWL_QuerySyntax-regex"></a>

Perintah filter mendukung penggunaan ekspresi reguler. Anda dapat menggunakan operator perbandingan berikut (`=`,,`!=`,`<`, `<=``>`,`>=`) dan operator Boolean (`and`,`or`, dan`not`).

Anda dapat menggunakan kata kunci `in` untuk menguji keanggotaan yang ditetapkan dan memeriksa elemen dalam array. Untuk memeriksa elemen dalam array, letakkan array setelahnya`in`. Anda dapat menggunakan operator `not` Boolean dengan. `in` Anda dapat membuat kueri yang digunakan `in` untuk mengembalikan peristiwa log di mana bidang cocok string. Bidang harus berupa string lengkap. Misalnya, cuplikan kode berikut menunjukkan kueri yang digunakan `in` untuk mengembalikan peristiwa log di mana bidang `logGroup` adalah string `example_group` lengkap.

```
fields @timestamp, @message
| filter logGroup in ["example_group"]
```

Anda dapat menggunakan frasa kata kunci `like` dan `not like` untuk mencocokkan substring. Anda dapat menggunakan operator ekspresi reguler `=~` untuk mencocokkan substring. Untuk mencocokkan substring dengan `like` dan`not like`, lampirkan substring yang ingin Anda cocokkan dalam tanda kutip tunggal atau ganda. Anda dapat menggunakan pola ekspresi reguler dengan `like` dan`not like`. Untuk mencocokkan substring dengan operator ekspresi reguler, lampirkan substring yang ingin Anda cocokkan dalam garis miring ke depan. Contoh berikut berisi cuplikan kode yang menunjukkan bagaimana Anda dapat mencocokkan substring menggunakan perintah. `filter`

**Contoh: Cocokkan substring **

 Contoh berikut mengembalikan peristiwa log di mana `f1` berisi kata Peng ** * ecualian ***. Ketiga contoh tersebut peka terhadap huruf besar dan kecil. 

Contoh pertama cocok dengan substring dengan`like`. 

```
fields f1, f2, f3 
| filter f1 like "Exception"
```

 Contoh kedua cocok dengan substring dengan `like` dan pola ekspresi reguler. 

```
fields f1, f2, f3 
| filter f1 like /Exception/
```

 Contoh ketiga cocok dengan substring dengan ekspresi reguler. 

```
fields f1, f2, f3 
| filter f1 =~ /Exception/
```

**Contoh: Cocokkan substring dengan wildcard **

 Anda dapat menggunakan simbol titik (`.`) sebagai wildcard dalam ekspresi reguler untuk mencocokkan substring. Dalam contoh berikut, query mengembalikan kecocokan di mana nilai untuk `f1` dimulai dengan string`ServiceLog`. 

```
fields f1, f2, f3
| filter f1 like /ServiceLog./
```

 Anda dapat menempatkan simbol tanda bintang setelah simbol periode (`.*`) untuk membuat kuantifier serakah yang mengembalikan kecocokan sebanyak mungkin. Misalnya, kueri berikut mengembalikan kecocokan di mana nilai untuk `f1` tidak hanya dimulai dengan string`ServiceLog`, tetapi juga menyertakan string`ServiceLog`. 

```
fields f1, f2, f3
| filter f1 like /ServiceLog.*/
```

 Kemungkinan kecocokan dapat diformat seperti berikut: 
+  `ServiceLogSampleApiLogGroup` 
+  `SampleApiLogGroupServiceLog` 

**Contoh: Kecualikan substring dari kecocokan **

Contoh berikut menunjukkan kueri yang mengembalikan peristiwa log di mana `f1` tidak berisi kata Peng * ** ecualian ***. Contohnya adalah case senstive.

```
fields f1, f2, f3 
| filter f1 not like "Exception"
```

**Contoh: Cocokkan substring dengan pola yang tidak peka huruf besar/kecil **

Anda dapat mencocokkan substring yang tidak peka huruf besar/kecil dengan ekspresi `like` reguler. Tempatkan parameter berikut (**? i**) sebelum substring yang ingin Anda cocokkan. Contoh berikut menunjukkan kueri yang mengembalikan peristiwa log yang `f1` berisi kata Peng ** * ecualian * ** atau peng ** * ecualian ***.

```
fields f1, f2, f3 
| filter f1 like /(?i)Exception/
```