

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

# Amazon OpenSearch Service 中的時間點搜尋
<a name="pit"></a>

時間點 (PIT) 是一種搜尋類型，可讓您針對固定時間的資料集執行不同的查詢。一般而言，當您在不同時間點對相同索引執行相同的查詢時，會收到不同的結果，因為文件會持續編製索引、更新和刪除。使用 PIT，您可以查詢資料集的恆定狀態。

PIT 搜尋的主要用途是將其與 `search_after`功能結合。這是 OpenSearch 中偏好的分頁方法，特別是深度分頁，因為它在及時凍結的資料集上運作，它不繫結至查詢，並且支援向前和向後一致的分頁。您可以將 PIT 與執行 OpenSearch 2.5 版的網域搭配使用。

**注意**  
本主題提供 PIT 的概觀，以及在受管 Amazon OpenSearch Service 網域上使用它時需要考慮的一些事項，而非自我管理的 OpenSearch 叢集。如需 PIT 的完整文件，包括完整的 API 參考，請參閱開放原始碼 OpenSearch 文件中的[時間點](https://opensearch.org/docs/latest/opensearch/point-in-time/)。

## 考量事項
<a name="pit-considerations"></a>

當您設定 PIT 搜尋時，請考慮下列事項：
+ 如果您要從執行 OpenSearch 2.3 版的網域升級，且需要 PIT 動作的精細存取控制，則需要手動新增這些動作和角色。
+ PIT 沒有彈性。節點重新啟動、節點終止、藍/綠部署和 OpenSearch 程序重新啟動會導致所有 PIT 資料遺失。
+ 如果碎片在藍/綠部署期間重新定位，則只會將即時資料區段傳輸到新節點。PIT 持有的碎片區段 （僅限 和與即時資料共用的碎片） 會保留在舊節點上。
+ PIT 搜尋目前不適用於非同步搜尋。

## 建立 PIT
<a name="pit-sample"></a>

若要執行 PIT 查詢，`_search/point_in_time`請使用下列格式將 HTTP 請求傳送至 ：

```
POST opensearch-domain/my-index/_search/point_in_time?keep_alive=time
```

您可以指定下列 PIT 選項：


| 選項 | Description | 預設值 | 必要 | 
| --- | --- | --- | --- | 
| keep\$1alive |  保留 PIT 的時間量。每次使用搜尋請求存取 PIT 時，PIT 生命週期都會延長等於 `keep_alive` 參數的時間量。建立 PIT 時需要此查詢參數，但在搜尋請求中為選用。  |  | 是 | 
| preference |  字串，指定用於執行搜尋的節點或碎片。  | 隨機 | 否 | 
| routing | 指定將搜尋請求路由到特定碎片的字串。 | 文件的 \$1id | 否 | 
| expand\$1wildcards | 指定可符合萬用字元模式之索引類型的字串。支援逗號分隔值。有效值如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/opensearch-service/latest/developerguide/pit.html) | open | 否 | 
| allow\$1partial\$1pit\$1creation | 布林值，指定是否建立具有部分失敗的 PIT。 | true | 否 | 

**回應範例**

```
{
    "pit_id": "o463QQEPbXktaW5kZXgtMDAwMDAxFnNOWU43ckt3U3IyaFVpbGE1UWEtMncAFjFyeXBsRGJmVFM2RTB6eVg1aVVqQncAAAAAAAAAAAIWcDVrM3ZIX0pRNS1XejE5YXRPRFhzUQEWc05ZTjdyS3dTcjJoVWlsYTVRYS0ydwAA",
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "creation_time": 1658146050064
}
```

當您建立 PIT 時，您會在回應中收到 PIT ID。這是您使用 PIT 執行搜尋的 ID。

## 時間點許可
<a name="pit-permissions"></a>

PIT [支援精細存取控制](fgac.md)。如果您要升級至 OpenSearch 2.5 版網域且需要精細存取控制，則需要手動建立具有下列許可的角色：

```
# Allows users to use all point in time search search functionality
point_in_time_full_access:
  reserved: true
  index_permissions:
    - index_patterns:
        - '*'
      allowed_actions:
        - "indices:data/read/point_in_time/create"
        - "indices:data/read/point_in_time/delete"
        - "indices:data/read/point_in_time/readall"
        - "indices:data/read/search"
        - "indices:monitor/point_in_time/segments"
        

# Allows users to use point in time search search functionality for specific index
# All type operations like list all PITs, delete all PITs are not supported in this case

point_in_time_index_access:
  reserved: true
  index_permissions:
    - index_patterns:
        - 'my-index-1'
      allowed_actions:
        - "indices:data/read/point_in_time/create"
        - "indices:data/read/point_in_time/delete"
        - "indices:data/read/search"
        - "indices:monitor/point_in_time/segments"
```

對於具有 OpenSearch 2.5 版及更高版本的網域，您可以使用內建`point_in_time_full_access`角色。如需詳細資訊，請參閱 OpenSearch 文件中的[安全模型]( https://opensearch.org/docs/latest/search-plugins/point-in-time/#security-model)。

## PIT 設定
<a name="pit-diff"></a>

OpenSearch 可讓您使用 `_cluster/settings` API 變更所有可用的 [PIT 設定](https://opensearch.org/docs/latest/search-plugins/point-in-time-api/#pit-settings)。在 OpenSearch Service 中，您目前無法修改設定。

## 跨叢集搜尋
<a name="pit-ccs"></a>

您可以建立 PITs、使用 PIT IDs搜尋、列出 PITs，以及刪除具有下列次要限制的叢集之間的 PITs：
+ 您只能列出來源網域上的所有 和刪除所有 PITs。
+ 您無法將網路往返次數降到最低，作為跨叢集搜尋查詢的一部分。

如需詳細資訊，請參閱[Amazon OpenSearch Service 中的跨叢集搜尋](cross-cluster-search.md)。

## UltraWarm
<a name="pit-ultrawarm"></a>

使用 UltraWarm 索引的 PIT 搜尋會繼續運作。如需詳細資訊，請參閱[Amazon OpenSearch Service 的 UltraWarm 儲存](ultrawarm.md)。

**注意**  
您可以在 CloudWatch 中監控 PIT 搜尋統計資料。如需指標的完整清單，請參閱 [時間點指標](managedomains-cloudwatchmetrics.md#managedomains-cloudwatchmetrics-pit)。