

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# OpenCypher と Bolt を使用した Neptune のベストプラクティス
<a name="best-practices-opencypher"></a>

Neptune で openCypher クエリ言語と Bolt プロトコルを使用する場合は、これらのベストプラクティスに従ってください。Neptune で openCypher を使用する方法については、[openCypher でNeptune グラフにアクセスする](access-graph-opencypher.md) を参照してください。

**Topics**
+ [フェイルオーバー後の新しい接続の作成](#best-practices-opencypher-renew-connection)
+ [存続期間の長いアプリケーションの接続処理](#best-practices-opencypher-long-connections)
+ [の接続処理 AWS Lambda](#best-practices-opencypher-lambda-connections)
+ [クエリでは双方向のエッジを優先する](best-practices-opencypher-directed-edges.md)
+ [Neptune は 1 つのトランザクションでの複数の同時クエリをサポートしていません。](best-practices-opencypher-multiple-queries.md)
+ [完了したら、ドライバーオブジェクトを閉じます](best-practices-opencypher-close-driver.md)
+ [読み取りと書き込みには明示的なトランザクションモードを使用してください。](best-practices-opencypher-use-explicit-txs.md)
+ [例外の場合の再試行ロジック](best-practices-opencypher-retry-logic.md)
+ [1 つの SET 句を使用して複数のプロパティを一度に設定する](best-practices-content-0.md)
+ [パラメータ化されたクエリを使用する](best-practices-content-2.md)
+ [UNWIND 句でネストされたマップの代わりにフラット化されたマップを使用する](best-practices-content-3.md)
+ [可変長パス (VLP) 式で、より制限の厳しいノードを左側に配置する](best-practices-content-4.md)
+ [詳細な関係名を使用してノードラベルの冗長チェックを回避する](best-practices-content-5.md)
+ [可能な場合はエッジラベルを指定する](best-practices-content-6.md)
+ [可能な場合は WITH 句を使用しない](best-practices-content-7.md)
+ [制限付きフィルターをクエリのできるだけ早い段階で配置する](best-practices-content-8.md)
+ [プロパティが存在するかどうかを明示的に確認する](best-practices-content-9.md)
+ [名前付きパスを使用しない (必須でない限り)](best-practices-content-10.md)
+ [COLLECT(DISTINCT()) を避ける](best-practices-content-11.md)
+ [すべてのプロパティ値を取得するときに、個々のプロパティルックアップよりもプロパティ関数を優先する](best-practices-content-12.md)
+ [クエリの外部で静的計算を実行する](best-practices-content-13.md)
+ [個々のステートメントの代わりに UNWIND を使用したバッチ入力をする](best-practices-content-14.md)
+ [ノード/リレーションシップにカスタム ID を使用する](best-practices-content-15.md)
+ [クエリで \$1id 計算を実行しない](best-practices-content-16.md)
+ [複数のノードの更新/移行](best-practices-merge-multiple-nodes.md)

## フェイルオーバー後の新しい接続の作成
<a name="best-practices-opencypher-renew-connection"></a>

フェイルオーバーが発生した場合、DNS 名が特定の IP アドレスに解決されるため、Bolt ドライバーは新しいアクティブなライターインスタンスではなく古いライターインスタンスに接続し続けることがあります。

これを防ぐには、フェイルオーバー後に `Driver` オブジェクトを閉じて、再接続します。

## 存続期間の長いアプリケーションの接続処理
<a name="best-practices-opencypher-long-connections"></a>

コンテナ内や Amazon EC2 インスタンスで実行されるアプリケーションなど、長期間有効なアプリケーションを構築する場合は、`Driver` オブジェクトを一度インスタンス化し、そのオブジェクトをアプリケーションの存続期間中再利用します。`Driver` オブジェクトはスレッドセーフで、初期化にはかなりのオーバーヘッドがかかります。

## の接続処理 AWS Lambda
<a name="best-practices-opencypher-lambda-connections"></a>

Bolt ドライバーは、接続オーバーヘッドと管理要件のため、 AWS Lambda 関数内での使用はお勧めしません。代わりに [HTTPS エンドポイント](access-graph-opencypher-queries.md)を使用してください。