最近、生成AIを活用したシステムで「意味検索」という技術が注目されています。
例えば、ECサイトで、
「USBケーブル1本で使えるスピーカーが欲しい」
と検索したとします。
従来のキーワード検索では、入力した単語が商品名や説明文に含まれているかが重要になります。
一方、意味検索では、文章の意味が近い商品を探せます。
こうした検索を実現するには、これまでOpenSearchなどの検索サービスを別途用意する構成が一般的でした。
しかし、2026年8月、AWSの「Amazon DynamoDB」にベクトル検索機能が追加されました。
これによって、商品データを保存しているDynamoDBだけで、意味検索まで実現できる可能性が生まれました。
今回は、実際にDynamoDBのベクトル検索を使って商品検索を構築し、検索精度や応答速度を検証してみました。
そもそも「ベクトル検索」って何?
例えば、ECサイトで「持ち運びやすいパソコン」と検索したとします。
商品説明には「軽量ノートPC」と書かれているかもしれません。
キーワードが完全に一致していなくても、意味としては近いですよね。
こうした意味の近さを利用して情報を探すのが、ベクトル検索です。
文章をAIのモデルで数値データに変換し、その数値同士の近さから関連する情報を探します。
この仕組みを使うことで、ユーザーが商品名を正確に知らなくても、自然な言葉で商品を探せるようになります。
DynamoDBで検索できると何がうれしい?
DynamoDBは、AWSが提供するデータベースサービスです。
例えば、ECサイトの商品名、価格、説明文などを保存する用途で利用できます。
これまで、DynamoDBの商品情報に意味検索を追加したい場合、OpenSearchなどの別サービスに検索用データを保存する構成が考えられました。
この場合、
- DynamoDBに商品情報を登録する
- 検索用のデータを別サービスにも登録する
- 商品情報が更新されたら、検索用データも同期する
といった仕組みが必要になります。
もちろん、この構成にもメリットはあります。
しかし、データの保存先が増える分、管理する仕組みも複雑になります。
そこで登場したのが、DynamoDBのベクトル検索機能です。
商品データと検索用のベクトルを同じDynamoDBに保存し、そのまま意味検索できるようになりました。
検索専用のサービスを別に用意しなくてもよい場合がある、というのは大きな変化です。
ただし、文章をベクトルに変換する処理には、別途AIのモデルを利用します。
実際に60件の商品を検索してみた
今回は、架空のECサイトを想定し、6カテゴリ、合計60件の商品データを用意しました。
商品の説明文を「Amazon Titan Text Embeddings V2」というAIモデルでベクトルに変換し、DynamoDBに登録します。
そして、ユーザーが入力した検索文も同じようにベクトル化して、意味の近い商品を検索します。
例えば、
「USBケーブル1本で、給電と音声伝送ができるスピーカーが欲しい」
という検索です。
このような自然な文章から、条件に近い商品を探せるか確認しました。
検索精度はどのくらい?
今回は30問の検索テストを実施しました。
結果はこちらです。
今回の検証では、すべての質問で正解商品が上位5件に含まれました。
60件という小規模な商品データではありますが、自然な文章から関連する商品を探せることが確認できました。
一方で、30問中2問は正解商品が1位になりませんでした。
例えば、
「外部電源が不要なUSB-Cハブ」
を探したのに、外部電源が必要なドッキングステーションが1位になったケースがありました。
これは、意味検索の特徴が表れている部分です。
文章の意味が近いことと、指定した条件をすべて満たしていることは、必ずしも同じではありません。
そのため、検索結果に対して条件を確認するなど、用途に応じた工夫が必要になります。
キーワード検索の代わりにもなる?
では、ベクトル検索があれば、従来のキーワード検索は不要になるのでしょうか?
実際に、「メッシュ」「USB」「折りたたみ」などの単語で検索してみました。
すると、「USB」や「折りたたみ」では、上位5件すべてに検索語が含まれていました。
一方、「メッシュ」では、上位5件のうち検索語を含む商品は3件でした。
ベクトル検索は意味の近さを重視するため、入力した単語が必ず含まれるとは限りません。
例えば、商品の型番や商品コードを指定して検索したい場合、意味が近い商品よりも、指定した文字列と一致する商品を探すことが重要です。
つまり、意味検索とキーワード検索は、得意なことが異なるのです。
検索したい内容によっては、両方を組み合わせる「ハイブリッド検索」が適している場合もあります。
検索速度も確認してみた
検索精度だけでなく、応答速度も計測しました。
60件の商品データに対して90回検索したところ、結果は次のとおりでした。
今回の環境では、非常に短い時間で検索できました。
ただし、これはDynamoDBの検索APIにかかった時間です。
実際のアプリケーションでは、検索文をベクトルに変換する時間なども必要になります。
また、今回の検証対象は60商品なので、データが大量に増えた場合にも同じ性能が出るとは限りません。
すべての検索をDynamoDBにすればよい?
ここまで見ると、DynamoDBのベクトル検索は非常に便利に思えます。
しかし、すべての検索システムに適しているわけではありません。
例えば、検索基盤には次のような選択肢があります。
DynamoDBのベクトル検索
すでにDynamoDBで管理している商品情報などに、シンプルな意味検索を追加したい場合に向いています。
Amazon S3 Vectors
大量のベクトルを低コストで保存し、シンプルなベクトル検索を行いたい場合に有力な選択肢です。
Amazon OpenSearch
キーワード検索とベクトル検索を組み合わせたり、複雑な検索条件を扱ったりしたい場合に適しています。
それぞれに特徴があり、料金体系や制約も異なります。
新しい機能が登場したからといって、必ずしもそれがすべてのシステムにとって最適とは限りません。
何を検索したいのか、どのくらいデータがあるのか、どんな条件で検索するのか。
そうした要件に合わせて技術を選ぶことが重要です。
まとめ
今回は、Amazon DynamoDBの新しいベクトル検索機能を使って、商品検索を検証しました。
今回の検証では、自然な文章による検索で高い精度が得られ、応答速度も良好でした。
一方で、厳密な条件の判定やキーワード一致には課題も見つかりました。
今回の技術で特に面白いのは、これまで別々に管理していたデータベースと検索基盤を、一つにまとめられる可能性が生まれたことです。
新しい技術によって、できることが増えるだけでなく、システムの作り方そのものが変わる場合もあります。
Acroquestでは、こうした新しい技術を実際に試し、性能や制約を確認しながら、どのようなシステムに活用できるかを考えています。
新しい技術を知るだけでなく、実際に使って、その可能性と課題を確かめる。
そんな技術への向き合い方に興味がある方は、ぜひ一度お話ししましょう。
記事の詳細、検証に用いた実装コードなど詳しくは当社技術ブログに記載しておりますので、詳細を知りたい場合はこちらをご覧ください。
ぜひ、当社で一緒に働いてみませんか?
チャレンジングな案件が多く、成長の機会が多く得られる環境です
当社では、機械学習/AIや生成AIに加えて、AWSやAzureを活用したITサービス開発事業を推進しています。そこで、最先端技術を駆使しながら、社会を進化させたい情熱とスキルのある機械学習・AIエンジニア、クラウドエンジニアを募集しています!
私たちが取り組む案件は、最先端技術を用いる内容や高難易度の内容が多く、チャレンジングな環境なので、成長の機会が多く得られることをお約束します。
/assets/images/10338/original/b4c1f58c-4c92-447a-a0cc-671371e80f3a.png?1392712942)