OpenSearch を使用した純粋なベクトル検索シナリオでの実践
1. 概要
AI アルゴリズムは、人、物、シーンなど、物理世界のソースによって生成されたさまざまな非構造化データを、多次元ベクトルに抽象化できます。非構造化データには、音声、画像、動画、テキスト、行動などがあります。これらのベクトルは数学的空間における座標のようなもので、さまざまなエンティティとエンティティの関係を識別します。非構造化データをベクトルに変換するプロセスは一般に埋め込みと呼ばれ、非構造化検索は、生成されたベクトルから対応するエンティティを検索するプロセスです。

非構造化検索は、本質的にはベクトル検索技術です。この技術は、主に顔認識、レコメンデーションシステム、画像検索、動画フィンガープリント、音声処理、自然言語処理 (NLP)、ファイル検索などの分野に適用されます。AI 技術の幅広い適用とデータ規模の継続的な成長に伴い、ベクトル検索は徐々に AI 技術リンクに不可欠な部分となり、従来の検索技術を補完するものとなっています。ベクトル検索は、マルチモーダル検索もサポートしています。
より多様化かつ複雑なマルチモーダル検索シナリオの要件を満たすために、OpenSearch はベクトル検索機能を提供しており、ワンストップで高性能なベクトル検索システムを構築できます。
2. OpenSearch インスタンスを作成する
手順 1: 今すぐ購入 をクリックします。
手順 2: インスタンスの仕様とパラメーターを構成します。
パラメーター構成
製品タイプ: テスト目的でのみインスタンスを購入する場合は、このパラメーターを
従量課金に設定できます。リージョンと ゾーン:このパラメーターを
China (Hangzhou)(カスタマイズ可能)に設定します。アプリケーション名: このパラメーターを
test_vector_opensearch(カスタマイズ可能) に設定します。業種: このパラメーターを
一般業種に設定します。仕様: このパラメーターを専用コンピューティングに設定し、ストレージ容量とコンピューティングリソースにそれぞれ30GB、1000LCUを選択します。次に、今すぐ購入をクリックします。
手順 3: 表示された注文確認ページで、Open Search (サブスクリプション) 国際サイトサービス契約に同意します を選択します。次に、今すぐアクティブ化をクリックして注文を確定します。

OpenSearch インスタンスが作成されます。
3. ベクトル検索サービスインスタンスを構成する
アプリケーションの構成ページで、機能の選択、アプリケーションスキーマ、インデックススキーマ、データソース、完了の手順を順番に設定します。
3.1. アプリケーションスキーマ
OpenSearch コンソール のアプリケーションページで対応するアプリケーションを見つけ、アクション列の構成をクリックします。

手順 1: アプリケーションスキーマを作成します。
手動でアプリケーションスキーマを作成するか、データソースに接続するか、テンプレートをアップロードするか、ファイルをアップロードすることでアプリケーションスキーマを作成できます。たとえば、データソースとして MaxCompute を選択するには、アプリケーションスキーマ作成方法でデータソースを使用を選択し、データソースの使用でMaxCompute を選択します。次に、データベースの作成をクリックします。

データベース接続情報を入力します。

手順 2: テーブルを選択し、OK をクリックします。

手順 3: プライマリテーブルとプライマリキーを選択します。複数のテーブルを結合する必要がある場合は、複数のテーブルを結合する を参照してください。

注: ベクトルフィールドは DOUBLE_ARRAY タイプに設定する必要があります。
3.2. インデックススキーマ
手順 1: インデックスフィールド
アプリケーションスキーマが構成されると、システムは自動的にインデックスフィールド、アナライザー、インデックスタグ、および含まれるフィールドを生成します。

注: ベクトルフィールド (vector_field) にベクトルインデックスを設定する必要があります。必要に応じて次元を選択できます。デフォルトでは、OpenSearch は 64、128、256、512、1536 次元ベクトルをサポートしています。
手順 2: 属性フィールドリスト

3.3. データソース
アプリケーションスキーマを構成するときに MaxCompute データソースを選択した場合、対応するプロジェクトテーブルが自動的にマッピングされます。必要に応じて、対応するインポート条件を指定するだけです。デフォルトでは、テーブルのすべてのパーティションデータがインポートされます。

データソーステーブルフィールドの名前が構成したアプリケーションスキーマの名前と一致しない場合は、変更をクリックしてマッピングフィールドを手動で変更できます。

確認して、完了をクリックします。

3.4. 構成完了

4. オンラインクエリ
ベクトルクエリの構文の詳細については、ベクトル検索 をクリックしてください。
検索テストページを表示するには、機能拡張 > 検索テストの実行 を選択します。

# 1536次元ベクトルを例として使用します。
vector_index:'-0.01786,0.03692,0.03710,0.01668,0.03655,-0.03515,0.02017,-0.00653,-0.01419,-0.01708,-0.00091,-0.03528,0.02821,-0.02194,-0.01609,-0.02045,0.02209,0.06413,0.06233,0.03064,-0.00863,-0.06810,0.00729,0.07912,-0.03948,0.06932,0.02051,-0.00688,-0.01138,0.03207,0.03040,-0.00050,0.06220,-0.03895,0.04575,-0.00259,0.04358,0.02027,0.03342,-0.02916,0.04793,-0.02954,0.04327,0.06156,-0.00230,0.00653,0.01515,-0.00287,0.03546,-0.01551,-0.03049,0.07542,-0.01563,0.00680,0.00598,-0.00396,0.00330,0.00359,-0.03395,-0.00825,-0.02175,0.04479,0.04008,0.03558,-0.03011,-0.00015,0.03086,-0.00941,0.03113,0.00758,-0.04333,0.04607,-0.02520,-0.01260,-0.04726,0.00564,-0.02423,-0.00439,-0.02739,-0.01674,0.06426,-0.05995,0.01762,0.04370,0.02211,-0.03174,0.04465,0.00475,-0.03577,0.01111,-0.00963,0.03510,-0.02533,-0.00444,0.00161,0.00561,0.00066,-0.04074,0.00682,0.03293,-0.01630,-0.02575,0.02834,0.02679,-0.04558,0.02395,0.00531,0.01240,0.04064,0.03599,0.00172,0.00413,-0.06839...&sf=0.8'