このガイドでは、オンラインマルチテーブル結合に対応した OpenSearch High-performance Search Edition インスタンスをすばやく設定する手順を説明します。
前提条件
-
Alibaba Cloud アカウントをお持ちで、本人確認が完了していること。
-
AccessKey が作成されていること。初回ログイン時に、Alibaba Cloud コンソールで AccessKey の作成を促されます。
手順
-
アプリケーションインスタンスを作成して購入します。
-
アプリケーションを設定します。アプリケーションスキーマとインデックススキーマを定義し、データソースを設定します。
-
検索機能をテストします。
アプリケーションの作成
-
OpenSearch 高性能検索版コンソールのInstancesページで、インスタンスの作成をクリックします。
-
エディション、課金方法、リージョンとゾーン、アプリケーション名、クラスターの優先設定、ストレージ容量、コンピューティングリソースを含むインスタンス設定を指定してから、今すぐ購入 をクリックします。
利用可能なエディションには、Industry Algorithm Edition、LLM Intelligent Q&A Edition、High-performance Search Edition、Vector Search Edition、Recall Engine Edition があります。
[エディション] には、OpenSearch High-Performance Search Edition を選択します。
[アプリケーション名] は、英字で始まり、英字、数字、アンダースコア (_) のみを含み、30 文字以内である必要があります。アプリケーションの作成後は、名前を変更できません。[リソースグループ] は、必要に応じて選択または作成します。
-
[課金方法]: Pay-as-you-go または Pay-as-you-go を選択できます。
-
[リージョンとゾーン]: ビジネスニーズに基づいて、リージョンとゾーンを選択します。
-
[アプリケーション名]: カスタム名を入力します。
-
[クラスタータイプ]: ストレージ最適化専用クラスターに固定されています。
-
[ストレージ容量] と [コンピューティングリソース]: デフォルト値のままにするか、ビジネスニーズに基づいて値を指定します。
-
-
注文内容を確認し、利用規約に同意して、今すぐ有効化 をクリックします。
-
アクティベーション後、インスタンスはインスタンス管理ページに [設定待ち] のステータスで表示されます。
課金方法が [従量課金] のインスタンスの場合は、[操作] 列の [設定] をクリックして、アプリケーションを設定します。
アプリケーションの設定
-
インスタンス一覧ページで、新しく購入したインスタンスを探し、「操作」列の設定をクリックします。
新しいインスタンスのステータスは [設定待ち] です。
-
次の 4 つの方法のいずれかで、アプリケーションスキーマを定義します:
-
[テンプレートから]: ユーザー定義のアプリケーションスキーマをテンプレートとして保存し、それを再利用して新しいアプリケーションをすばやく作成できます。
-
[ドキュメントをアップロード]: JSON データファイルをアップロードします。システムが自動的に解析して、初期のアプリケーションスキーマを作成します。その後、フィールドタイプなどの設定を確認して調整してください。
-
[データソースから]: この方法は、RDS や MaxCompute などのソースからデータを同期する場合に最適です。ソーステーブルスキーマから初期のアプリケーションスキーマを自動的に生成し、手作業を減らしてエラーの発生を防ぎます。詳細については、「データソースの設定」をご参照ください。
-
[手動]: この方法は、迅速なテストに適しています。このガイドでは、この方法を使用して 2 つのテーブルを作成します。
最初のテーブルは
mainで、フィールドm_id(INT、主キー)、m_name(LITERAL)、m_age(LITERAL)、m_title(TEXT) を含みます。2 番目のテーブルはtable_1で、フィールドt_id_1(INT、主キー)、t_name(LITERAL)、t_age(LITERAL)、t_title(TEXT) を含みます。フィールドタイプの詳細については、「OpenSearch High-performance Search Edition のアプリケーションスキーマ」をご参照ください。
注:
説明システムは最大 8 つのテーブルをサポートします。
-
-
各テーブルのインデックススキーマを個別に設定します。
インデックススキーマの設定ページには、[インデックスフィールド] (インデックス名、含まれるフィールド、解析方法を設定)、[属性フィールド]、[ルーティングフィールド (オプション)]、[詳細設定 (オプション)] の各セクションがあります。
mainテーブルやtable_1テーブルのように複数のテーブルがあるアプリケーションでは、各テーブルを展開して個別に設定する必要があります。-
インデックススキーマの設定方法の詳細については、「インデックススキーマ」をご参照ください。
-
解析方法の選択の詳細については、「テキストアナライザー」をご参照ください。
-
SELECT、WHERE、またはORDER BY句でフィールドを使用するには、そのフィールドを属性フィールドとして設定する必要があります。
説明-
FLOAT、FLOAT_ARRAY、DOUBLE、DOUBLE_ARRAYタイプのフィールドは、インデックスフィールドとして設定できません。 -
TEXTおよびSHORT_TEXTタイプのフィールドは、属性フィールドとして設定できません。
-
-
各テーブルの設定 ([main テーブルの設定] や [table_1 の設定] セクションなど) で、[ルーティングフィールド (オプション)] エリアを展開し、[含まれるフィールド] 列にルーティングフィールドを追加します。
OpenSearch インスタンスは分散バックエンドを使用します。マルチテーブルシナリオでは、結合操作に必要なすべてのデータが同じマシン上に配置されている必要があります (次の図を参照)。
インデックスの構築時に、エンジンは設定されたルーティングフィールドの値をハッシュ化し、同じハッシュ結果を持つレコードが同じシャードに格納されるようにします。クエリ時には、クエリノードが各シャードにリクエストを送信します。各シャードは、他のシャードと通信することなく、内部で結合操作を実行します。最後に、各シャードは結合結果をクエリノードに返します。クエリノードは結果を集約し、最終結果をユーザーに返します。
説明-
デフォルトでは、システムは主キーをルーティングフィールドとして使用します。
-
ルーティングフィールドは 1 つのみ選択できます。
-
テーブル間のレコードは、ルーティングフィールドの値に基づいて共同配置されます。
-
ルーティングフィールドでサポートされているデータタイプは、
INTとLITERALです。 -
主キー以外のキーで結合を実行するには、結合キーをルーティングフィールドとして設定する必要があります。
-
-
High-performance Search Edition でサポートされているタイプに基づいて、データソースを設定します。
ページには、
mainテーブルとtable_1テーブルの両方のデータソースセクションが表示されます。各セクションで [データソースの追加] をクリックして、個別に設定してください。 -
設定が完了したら、[完了] をクリックします。
インスタンスの詳細ページにリダイレクトされます。
-
インスタンス詳細ページで、オフラインアプリケーションのステータスが正常になるまで待ってから、クエリを実行してください。
この間、オフラインアプリケーションのステータスは [アプリケーション初期化中] です。
検索テスト
-
オフラインアプリケーションのステータスが「正常」に変わり、アプリケーションがオンラインに公開されたら、検索テストページでアプリケーションをテストできます。
左側メニューで、[機能拡張] > [検索テスト] を選択します。インスタンスリストの [操作] 列で [検索テスト] をクリックすることもできます。
-
現在、オンラインマルチテーブル結合は SQL クエリのみをサポートしています。
[SQL クエリ] ボックスに、
SELECT ... FROM main INNER JOIN table_1 ON main.m_id = table_1.t_id_1 WHERE contain(main.m_title, ?) ORDER BY ... LIMIT 20 OFFSET 0などのマルチテーブル結合ステートメントを入力します。dynamic_params=123,456を使用してクエリパラメータを渡します。[実行] をクリックしてクエリを実行すると、下に結果が表示されます。サポートされている SQL 構文の詳細については、「SQL サポート」をご参照ください。
制限事項
-
オンラインマルチテーブル結合は、ストレージ最適化専用クラスターでのみサポートされています。
-
マルチテーブル結合シナリオでは、SQL クエリのみがサポートされます。
-
マルチテーブル結合シナリオでは、カスタムアナライザーはサポートされません。
-
マルチテーブル結合シナリオでは、ソート設定はサポートされません。代わりに、SQL クエリで
ORDER BY句を使用してください。 -
マルチテーブル結合シナリオでは、検索結果の表示はできません。
-
ストレージ最適化専用クラスターインスタンスは、他のインスタンスタイプに変更できません。