DynamoDB は全文検索をサポートしていますか?

いいえ、ネイティブにはサポートしていません。DynamoDB には全文検索がありません。関連度ランキングも、ステミングも、あいまい一致もありません。組み込みの文字列ツールは、完全一致の比較、ソートキーに対する begins_with、部分文字列フィルターの contains です。AWS の答えは Amazon OpenSearch Service とのゼロ ETL 統合で、テーブルを検索インデックスにレプリケートして全文検索、ベクトル検索、セマンティック検索を可能にします。

ネイティブでできること

  • ソートキーに対する begins_with — 1つのパーティション内での効率的な前方一致。階層的なソートキーモデルの背骨です。
  • フィルター式内の contains — 部分文字列の一致。ただしフィルターは読み取りの_後_に実行されるため、Scan では検査したアイテムをすべて読み取るコストが依然としてかかります。これが許容できる場合についてはフィルタリング戦略ガイドを参照してください。

どちらも結果をランク付けせず、タイプミスを許容せず、単語の区切りを理解しません。これらは検索ではなく文字列の述語です。

AWS ネイティブの答え: OpenSearch へのゼロ ETL

OpenSearch Ingestion 用の DynamoDB プラグインは、テーブルを1つ以上の OpenSearch インデックスに同期します。最初のスナップショットは DynamoDB の S3 エクスポート(PITR が必要)を通じて読み込まれ、その後 DynamoDB Streams が変更をほぼリアルタイムでレプリケートします。このパイプラインはテーブルの読み取り/書き込みスループットを一切消費しないため、本番トラフィックの隣で安全に使えます。そして AWS は、この統合が DynamoDB データに対する全文検索、ベクトル検索、セマンティック検索を可能にすると述べています。検索が主要なワークロードなら、DynamoDB vs Elasticsearch が運用データベースと検索エンジンの役割を直接比較します。

さらに詳しく

「検索」が実際には既知の参照であるなら、代わりにモデルを修正しましょう。フィルタリング戦略ソートキー戦略のガイドが、キーにできることを示します。Expression Builderbegins_with/contains 条件をプロトタイプし、探索しながらライブのテーブルデータをフィルターするには DynoTable をダウンロードしてください。

参考資料

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynoTable は DynamoDB 向けの高速なデスクトップクライアントです — テーブルを閲覧し、SQL スタイルのクエリを実行し、アイテムをローカルで編集できます。