

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立欄位索引以改善查詢效能並減少掃描磁碟區
<a name="CloudWatchLogs-Field-Indexing"></a>

您可以在日誌事件中建立欄位*的欄位索引*，以進行以等式為基礎的有效搜尋。當您接著在 CloudWatch Logs Insights 查詢中使用欄位索引時，查詢會嘗試略過處理已知不包含索引欄位的日誌事件。這可減少使用欄位索引的查詢掃描量，因此可以更快地傳回結果。這可協助您在數千個日誌群組中快速搜尋總日誌數 PB，並更快速地在相關日誌上進行搜尋。要編製索引的良好欄位是您通常需要查詢的欄位。具有高基數值的欄位也適合欄位索引，因為使用這些欄位索引的查詢會更快完成，因為它會限制與目標值相符的日誌事件。

例如，假設您已建立 的欄位索引`requestId`。然後，該日誌群組 CloudWatch Logs 上包含`requestId = {{value}}`或`requestId IN [{{value}}, {{value}}, ...]`將嘗試僅處理已知包含該索引欄位和查詢值的日誌事件，且該 CloudWatch Logs 在過去已偵測到該欄位的值。

您也可以利用欄位索引來建立更多日誌群組的有效查詢。當您在查詢中使用 `filterIndex`命令而非 `filter`命令時，查詢會在具有欄位索引的日誌事件上針對選取的日誌群組執行。這些查詢最多可以掃描 10，000 個您選擇的日誌群組，方法是指定最多五個日誌群組名稱字首。如果這是 CloudWatch 跨帳戶可觀測性的監控帳戶，您可以選擇所有來源帳戶或指定個別來源帳戶來選取日誌群組。

索引欄位區分大小寫。例如， 的欄位索引與包含 的日誌事件`RequestId`不相符`requestId`。

欄位索引僅支援 JSON 和服務日誌的結構化日誌格式。

CloudWatch Logs 為標準日誌類別中的所有日誌群組提供預設欄位索引。預設欄位索引會自動用於下列欄位：
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Logs 也提供特定資料來源名稱和類型組合的預設欄位索引。預設欄位索引會自動用於下列資料來源名稱和類型組合：


| 資料來源名稱和類型 | 預設欄位索引 | 
| --- | --- | 
| `amazon_vpc.flow` | `action`<br />`logStatus`<br />`region`<br />`flowDirection`<br />`type` | 
| `amazon_route53.resolver_query` | `query_type`<br />`transport`<br />`rcode` | 
| `aws_waf.access` | `action`<br />`httpRequest.country` | 
| `aws_cloudtrail.data`<br />` aws_cloudtrail.management` | `eventSource`<br />`eventName`<br />`awsRegion`<br />`userAgent`<br />`errorCode`<br />`eventType`<br />`managementEvent`<br />`readOnly`<br />`eventCategory`<br />`requestId` | 

預設欄位索引是附加於您在政策中定義的任何自訂欄位索引。預設欄位索引不會計入您的[欄位索引配額](CloudWatchLogs-Field-Indexing-Syntax.md)。

CloudWatch Logs 只會索引建立索引政策後擷取的日誌事件。它不會為建立政策之前擷取的日誌事件編製索引。建立欄位索引之後，每個相符的日誌事件都會從日誌事件的擷取時間保持索引 30 天。

**注意**  
如果您在監控帳戶中建立欄位索引政策，該政策不會用於連結來源帳戶中的日誌群組。欄位索引政策僅適用於建立該政策的帳戶。

本節的其他主題說明如何建立欄位索引。如需有關在查詢中參考欄位索引的資訊，請參閱 [filterIndex](CWL_QuerySyntax-FilterIndex.md)和 [篩選條件](CWL_QuerySyntax-Filter.md)。

**Topics**
+ [欄位索引語法和配額](CloudWatchLogs-Field-Indexing-Syntax.md)
+ [建立帳戶層級欄位索引政策](CloudWatchLogs-Field-Indexing-CreateAccountLevel.md)
+ [建立日誌群組層級欄位索引政策](CloudWatchLogs-Field-Indexing-CreateLogGroupLevel.md)
+ [建立查詢時的日誌群組選取選項](Field-Indexing-Selection.md)
+ [刪除欄位索引政策的效果](CloudWatchLogs-Field-Indexing-Deletion.md)