【正解】B
【0からの解説】
①前提知識
・ベクトル エンベディング(埋め込み): 文章などのデータを、その「意味」を表す数値のベクトルに変換したものです。意味が近い文章ほどベクトル同士の距離が近くなるため、言い回しが違っても意味的に似た文章を見つけられます(セマンティック検索)。
・近似最近傍探索(ANN): 大量のベクトルの中から、検索ベクトルに最も近いものを、ベクトル インデックスを使って高速に(厳密さを少し犠牲にして)見つける手法です。
Cloud SQL for MySQL はベクトル検索に対応しており、テーブルにベクトル エンベディング列を追加してデータを格納し、ベクトル インデックスを作成して ANN 検索を実行できます。エンベディングは Gemini Enterprise Agent Platform(旧 Vertex AI)などのエンベディング モデルで生成できます。
②要件と制約の整理
・顧客が入力する「自由形式のテキスト」で検索する(表現が毎回異なり、製品説明の文言と一致するとは限らない)。
・その内容に「最もよく一致する(最も近い)」製品を返す必要がある → 文字列の一致ではなく意味の類似度で探す必要がある。
③正解が要件を満たす理由
製品説明をエンベディングに変換して列に保存し、顧客の検索テキストも同じモデルでエンベディングに変換してから ANN 検索を行えば、言い回しが違っていても意味的に最も近い製品を高速に見つけられます。生成 AI のチャットボットで一般的な、公式に推奨されるセマンティック検索の実装方法です。
【誤りの選択肢】
A:正規表現は決められた文字パターンとの一致を調べるもので、自由形式の文章の「意味」の近さは判定できません。言い回しが違えば一致せず、類似度による順位付けもできません。
C:LIKE 演算子は部分文字列の一致を調べるだけで、同義語や言い換えに対応できず、どれが「最も近いか」の順位付けもできません。先頭がワイルドカードの検索はインデックスも使えず遅くなります。
D:SOUNDEX は英単語の発音の類似度を表すコードを比較する関数で、つづりの揺れの検出には使えても、文章全体の意味の類似度は判断できません。自由形式の説明文に最も一致する製品を探す用途には適しません。
【参考】
ベクトル検索 | Cloud SQL for MySQLベクトル インデックスを作成して管理する | Cloud SQL for MySQLベクトル エンベディングを使用した検索とフィルタ | Cloud SQL for MySQL