

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

# 在現有的 Neptune 資料庫上啟用全文檢索搜尋
<a name="full-text-search-cfn-enabling"></a>

 這些是在現有 Amazon Neptune 資料庫上啟用全文搜尋的已建立方法。根據您是否可以暫停寫入工作負載，步驟可能會略有不同。本指南概述兩種案例的建議步驟 - 何時可以暫停寫入，何時不可以。它涵蓋啟用 Neptune 串流、建立資料庫複製、將資料同步至 OpenSearch 網域，以及設定持續更新。此指引會利用 AWS 服務和開放原始碼工具來簡化程序，並將停機時間降至最低。

## 如果您可以暫停寫入工作負載
<a name="full-text-search-cfn-enabling-with-pause"></a>

在現有的 Neptune 資料庫上啟用全文檢索搜尋的最佳方式通常如下，前提是您可以暫停寫入工作負載。它需要建立一個複製、使用叢集參數啟用串流，並重新啟動所有執行個體。建立複製是一項相對較快的操作，因此所需的停機時間會受到限制。

必要的步驟如下：

1. 停止資料庫上的所有寫入工作負載。

1. 在資料庫上啟用串流 (請參閱[啟用 Neptune 串流](streams-using-enabling.md))。

1. 建立資料庫的複製 (請參閱 [Neptune 中的資料庫複製](manage-console-cloning.md))。

1. 繼續寫入工作負載。

1. 使用 github 上的 [export-neptune-to-elasticsearch](https://github.com/awslabs/amazon-neptune-tools/tree/master/export-neptune-to-elasticsearch) 工具，執行從複製的資料庫到 OpenSearch 網域的一次性同步。

1. 使用[適用於您區域的CloudFormation 範本](https://docs.aws.amazon.com/neptune/latest/userguide/full-text-search-cfn-create.html#full-text-search-cfn-by-region)，以持續更新的方式從原始資料庫開始同步 (範本中不需要變更任何組態)。

1. 刪除複製的資料庫和為`export-neptune-to-elasticsearch`工具建立的 CloudFormation 堆疊。

**注意**  
如果將 [export-neptune-to-elasticsearch](https://github.com/awslabs/amazon-neptune-tools/tree/master/export-neptune-to-elasticsearch) 與 Opensearch Serverless 搭配使用，則必須將 [export-neptune-to-elasticsearch](https://github.com/awslabs/amazon-neptune-tools/tree/master/export-neptune-to-elasticsearch) Cloudformation 堆疊`LambdaExecutionRole`建立的 新增至 [Opensearch Data Access Policy](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html)，才能成功複寫資料。

## 如果您無法暫停寫入工作負載
<a name="full-text-search-cfn-enabling-without-pause"></a>

如果您負擔不起在資料庫上暫停寫入工作負載，以下是所需停機時間甚至比上述建議方法還要少的方法，但需要謹慎完成：

1. 在資料庫上啟用串流 (請參閱[啟用 Neptune 串流](streams-using-enabling.md))。

1. 建立資料庫的複製 (請參閱 [Neptune 中的資料庫複製](manage-console-cloning.md))。

1. 針對串流 API 端點執行此類命令，以取得所複製資料庫上串流的最新 `eventID` (如需詳細資訊，請參閱[呼叫 Neptune 串流 REST API](streams-using-api-call.md))：

   ```
   curl "https://(your neptune endpoint):(port)/(propertygraph or sparql)/stream?iteratorType=LATEST"
   ```

   記下回應中 `lastEventId` 物件中 `commitNum` 和 `opNum` 欄位中的值。

1. 使用 github 上的 [export-neptune-to-elasticsearch](https://github.com/awslabs/amazon-neptune-tools/tree/master/export-neptune-to-elasticsearch) 工具，執行從複製的資料庫到 OpenSearch 網域的一次性同步。

1. 使用[適用於您區域的CloudFormation 範本](https://docs.aws.amazon.com/neptune/latest/userguide/full-text-search-cfn-create.html#full-text-search-cfn-by-region)，以持續更新的方式從原始資料庫開始同步。

   在建立堆疊時進行下列變更：在堆疊詳細資訊頁面的**參數**區段中，使用您在上面記錄的 `commitNum` 和 `opNum` 值，將 `StartingCheckpoint` 欄位的值設為 **commitNum**:**opnum**。

1. 刪除複製的資料庫和為`export-neptune-to-elasticsearch`工具建立的 CloudFormation 堆疊。