すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:製品概要

最終更新日:Mar 05, 2025

概要

OpenSearch Vector Search Edition は、Alibaba Group によって開発された大規模分散型検索エンジンです。 OpenSearch Vector Search Edition は、中国本土以外の地域のお客様に提供される淘宝網 (Taobao)、天猫 (Tmall)、菜鳥 (Cainiao)、優酷 (Youku) などの E コマースプラットフォームを含む、Alibaba Group 全体に検索サービスを提供しています。 OpenSearch Vector Search Edition は、Alibaba Cloud OpenSearch のベースエンジンでもあります。長年の開発を経て、OpenSearch Vector Search Edition は、高可用性、高適時性、費用対効果の高いビジネス要件を満たしています。 OpenSearch Vector Search Edition はまた、ビジネスの特徴に基づいてカスタム検索サービスを構築できる自動化された O&M システムも提供します。

アーキテクチャ

image.png

OpenSearch Vector Search Edition は、管理システム、オンライン検索システム、データソースという 3 つの主要コンポーネントで構成されています。オンライン検索システムはインデックスを読み込み、ベクトル検索サービスを提供します。データソースは、完全データのインポートと増分データのリアルタイム同期を行うように構成されています。管理システムは、クラスターを簡単に作成および管理できる自動化された O&M サービスを提供します。

システムアーキテクチャ

オンライン検索システム

ユーザーにとって、オンライン検索システムはテーブルディメンションに基づいて使用されます。 API 操作を呼び出すことで、各ベクトルテーブルのデータを個別にクエリできます。また、フィールドの設定、ベクトルインデックスの設定、データソースの設定、各テーブルのリアルタイムデータ同時実行制御など、各テーブルを個別に管理することもできます。

オンライン検索システムのバックエンドアーキテクチャは、Query Result Searcher (QRS) ワーカーと Searcher ワーカーで構成される分散アーキテクチャです。

image.png

  • QRS ワーカーは、開始したクエリリクエストを解析、検証、または書き直し、解析されたリクエストを Searcher ワーカーに転送して実行し、Searcher ワーカーから返された結果を収集してマージします。次に、QRS ワーカーは処理されたクエリ結果を返します。 QRS ワーカーはユーザーデータを読み込まない計算ノードであるため、大量のメモリを占有しません。 QRS ワーカーのメモリ使用量は、大量のドキュメントが返される場合、または大量の統計エントリが生成される場合にのみ高くなります。 QRS ワーカーの処理能力がボトルネックに達した場合は、QRS ワーカーの数を増やすか、QRS ワーカーのスペックアップを行うことができます。

  • Searcher ワーカーは、インデックスデータを読み込み、クエリに基づいてドキュメントを取得し、ドキュメントをフィルタリング、収集、ソートします。 Searcher ワーカーのインデックスはシャーディングできます。インデックスを複数のシャードに分割し、シャード内のフィールドを [0,65535] の範囲の値にハッシュできます。インデックスを作成するときに、シャードの数を指定できます。クラスターに大量のデータが含まれている場合、または高いクエリパフォーマンスが必要な場合は、シャーディングを実行して単一クエリの パフォーマンス を向上させることができます。クラスターのクエリ パフォーマンス を向上させたい場合、たとえば、クエリ/秒 (QPS) を 1,000 から 10,000 に増やす場合は、レプリカの数を増やすことができます。この場合、すべての Searcher ワーカーのデータを指定された数のシャードに分割する必要があります。シャードのハッシュ値は、[0,65535] の完全な範囲を構成する必要があります。

Searcher ワーカーのリソース (CPU、メモリ、ディスクなど) は、テーブル間で共有されます。

image.png

上の図は例を示しています。ベクトルテーブル 1 には 4 つのシャードが含まれ、ベクトルテーブル 2 には 1 つのシャードが含まれています。ベクトルテーブル 1 は、生成されたインデックスに基づいて、各シャードにデータを均等に分散します。ベクトルテーブル 2 は、すべてのベクトルデータをブロードキャストテーブルとして各 Searcher ワーカーに格納します。

データソース

データソースを構成して、再インデックス作成 (完全インデックス作成) を実行することにより、生データのインデックスを構築し、再インデックス作成後にインデックスデータをオンライン検索システムのテーブルにインポートしてデータ取得を行うことができます。データソースはテーブルに対応します。 OpenSearch Vector Search Edition は、MaxCompute、Search、Advertisement、Recommendation Offline (SARO)、および API などのデータソースタイプをサポートしています。 API データソースの生データは空です。 API データソースを使用する場合は、API 操作を呼び出すことによって、すべてのデータをオンライン検索システムの対応するテーブルにプッシュする必要があります。

管理システム

管理システムは、OpenSearch Vector Search Edition インスタンスの O&M プラットフォームです。このプラットフォームは、O&M コストの大幅な削減に役立ちます。

データ同期プロセス

完全インデックス作成

OpenSearch Vector Search Edition は、複数バージョンのインデックスをサポートしています。各インデックスバージョンは、生データのコピーに基づいて構築されます。デフォルトでは、API データソースの生データは空です。再インデックス作成がトリガーされるたびに、完全インデックス作成が実行されます。完全インデックス作成は常駐ジョブではありません。データが処理され、完全インデックスが生成されると、プロセスは終了します。次に、完全インデックスがデータ取得のためにオンラインクラスターに適用されます。

複数バージョンのインデックスにより、データが複数回変更されてもデータの整合性が確保されます。インデックススキーマまたはデータ構造が変更されると、新しいバージョンのインデックスは以前のバージョンのインデックスから分離されます。この場合、データの変更でエラーが発生した場合、データを以前のバージョンにロールバックできます。

完全インデックスを構築するには、データ処理、インデックス構築、インデックスマージなど、いくつかの手順が必要です。完全インデックス作成を高速化するために、各ステップのインデックス処理の同時実行性を設定できます。

リアルタイム増分インデックス作成

完全インデックスが構築されると、各インデックスバージョンには常駐の増分インデックス作成プロセスがあります。増分データは、データ更新ノードを使用して同期されます。

API 操作を呼び出すことで、MaxCompute、Object Storage Service (OSS)、および API データソースからテーブルに増分データをプッシュできます。 データ更新ノードは増分データを使用します。次に、Searcher ワーカーはデータ取得のためにリアルタイムでインデックスを構築します。

増分インデックス作成は常駐ジョブです。テーブルの各完全インデックス作成は、増分インデックス作成プロセスに対応します。 データ更新ノードの数を調整して、リアルタイムデータの処理能力を向上させることができます。

メリット

安定性

OpenSearch Vector Search Edition の基盤となるレイヤーは、C++ プログラミング言語を使用して開発されています。 10 年以上の開発を経て、OpenSearch Vector Search Edition は、さまざまなコア 業務システム に安定した検索サービスを提供しています。 OpenSearch Vector Search Edition は、高い安定性が求められるコア検索シナリオに適しています。

効率性

OpenSearch Vector Search Edition は、大量のデータを取得できる分散型検索エンジンです。 OpenSearch Vector Search Edition は、リアルタイムのデータ更新をサポートしています。データ更新は数秒以内に有効になります。したがって、OpenSearch Vector Search Edition は、時間に制約のあるクエリおよび検索シナリオに適しています。

費用対効果

OpenSearch Vector Search Edition は、インデックス圧縮と複数値インデックス読み込みテストの複数のポリシーをサポートしており、費用対効果の高い方法でクエリ要件を満たすことができます。