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

OpenSearch:汎用型のテンプレート構成

最終更新日:Mar 03, 2025

前提条件

  1. Alibaba Cloud アカウント が作成されており、実名登録 が完了していること。

  2. Alibaba Cloud アカウントを作成して初めてコンソールにログインすると、続行する前に AccessKey ペアを作成するように求められます。

  • OpenSearch アプリケーションの作成と使用には AccessKey ペアが必要となるため、Alibaba Cloud アカウントの AccessKey ペアを指定する必要があります。

  • Alibaba Cloud アカウントの AccessKey ペアを作成した後、RAM ユーザーの AccessKey ペアを作成して、RAM ユーザーとしてアプリケーションにアクセスできるようにすることができます。 RAM ユーザーに権限を付与する方法の詳細については、「アクセス認証ルール」をご参照ください。

アプリケーションの作成

手順:

  1. アプリケーションを購入します。

  2. 次の手順でアプリケーションを構成します。アプリケーションスキーマの定義、インデックススキーマの定義、データソースの構成、そして構成の完了です。

  3. 検索テストを実行します。

  4. 検索アルゴリズムセンターと高度な機能を使用します。たとえば、検索アルゴリズムセンターで検索結果を分析したり、ソートを構成したりできます。

OpenSearch Industry Algorithm Edition コンソールにログインします。 リージョンを選択し、インスタンスの作成 をクリックします。

image

1. アプリケーションの購入

OpenSearch は、従量課金とサブスクリプションの課金方法をサポートしています。ビジネス要件に基づいてリージョンを選択し、アプリケーションを購入できます。次の図は、アプリケーションを購入する手順を示しています。

image

2. アプリケーションの構成

購入したアプリケーションが初期化されると、アプリケーションは 保留中 状態になります。アプリケーションを構成するには、[インスタンス管理] ページの [アクション] 列で [構成] をクリックして、アプリケーションスキーマを定義します。

imageimage

2.1 アプリケーションスキーマの定義

OpenSearch コンソールでは、アプリケーションスキーマを定義するための 4 つのメソッドが提供されています。高度なアプリケーションは複数のテーブルをサポートしており、複雑なビジネスシナリオでの呼び出しが容易になります。

プライマリテーブルとセカンダリテーブルの関連付けルール

アプリケーションのスキーマを構成するために手動で複数のテーブルを作成する場合は、次のルールに注意してください。

  • プライマリテーブルのレコードとセカンダリテーブルのレコードの比率は N:1 または 1:1 である必要があります。 1:N の比率はサポートされていません。つまり、1 つのプライマリテーブルレコードを複数のセカンダリテーブルレコードに関連付けることはできません。 また、プライマリテーブルとして設定できるテーブルは 1 つだけです。

  • セカンダリテーブルは、セカンダリテーブルのプライマリキーをプライマリテーブルの外部キーに関連付けることで、プライマリテーブルに関連付けることができます。 プライマリテーブルの外部キーは、セカンダリテーブルのプライマリキーにのみ関連付けることができます。

  • セカンダリテーブルがプライマリテーブルに関連付けられている場合、最大 2 つのレベルがサポートされます。 複数のテーブル間でサポートされる関連付けの例:

  • テーブル a -> テーブル b、テーブル b -> テーブル c

  • テーブル a -> テーブル d

  • セカンダリテーブルがプライマリテーブルに関連付けられている場合、最大 2 つのレベルがサポートされます。

  • テーブル a -> テーブル b、テーブル b -> テーブル c、テーブル c -> テーブル d

  • テーブルをループに関連付けることはできません。

  • テーブル a -> テーブル b、テーブル b -> テーブル a

  • データモデル

image

アプリケーションスキーマを定義する手順:

1. テンプレートを使用してアプリケーションスキーマを定義する。 テンプレートを作成してカスタムアプリケーションスキーマを定義し、そのテンプレートを使用してアプリケーションを作成できます。 既存のテンプレートにカスタムアナライザが含まれている場合は、インスタンスにテンプレートを作成し、既存のテンプレートの構成を新しいテンプレートにインポートする必要があります。

2. データファイルを使用してアプリケーションスキーマを定義する。 OpenSearch Industry Algorithm Edition コンソールにデータファイルをアップロードできます。 次に、OpenSearch はアップロードされたデータファイルを自動的に解決し、初期アプリケーションスキーマを生成します。 注: データファイルは JSON 形式である必要があります。 初期アプリケーションスキーマが生成されたら、フィールドタイプなどの特定の属性を再定義する必要があります。

3. データソースを使用してアプリケーションスキーマを定義する。 ApsaraDB RDS や MaxCompute データソースなどのデータソースからデータを同期する場合に、このメソッドを使用できます。 ソーステーブルのスキーマを使用して、初期アプリケーションスキーマを生成できます。 これにより、手動定義のワークロードが削減され、エラーの可能性が減少します。 さまざまなデータソースへの接続手順は似ています。 次の図は、ApsaraDB RDS データソースに接続する方法を示しています。 詳細については、「ApsaraDB RDS for MySQL データソースの構成」をご参照ください。

imageimage

4. 手動でアプリケーションスキーマを定義する

image

2.2 インデックススキーマの定義

  • QUERY 句に含まれるフィールドを使用して、インデックスフィールドを作成する必要があります。 FLOAT タイプのフィールドを使用してインデックスフィールドを作成することはできません。 単語を分割する方法の詳細については、「Industry Algorithm Edition のテーブルのスキーマ」をご参照ください。

  • 次のフィールドを使用して、属性フィールドを作成する必要があります。FILTER 句または SORT 句に含まれるフィールド、および対応する関数で指定されているように属性フィールドに設定する必要があるフィールド。

  • TEXT や SHORT_TEXT などのテキストタイプのフィールドを使用して属性フィールドを作成することはできません。 INT、INT_ARRAY、FLOAT、FLOAT_ARRAY、DOUBLE、DOUBLE_ARRAY、LITERAL、LITERAL_ARRAY などの数値タイプまたはテキスト以外のタイプのフィールドを使用してのみ属性フィールドを作成できます。

image

2.3 データソースの構成

データソースに接続します。 次に、接続されているデータソースから 1 つ以上のテーブルを選択し、>> をクリックします。

image

選択を確認したら、[OK] をクリックします。 次に、フィールドマッピングを構成できます。

image

フィールドマッピングを構成するときに、データ処理用のプラグインを構成できます。 データ処理用のプラグインの使用方法の詳細については、「データ処理プラグインの使用」をご参照ください。

image

Data Transmission Service (DTS) を使用して、さまざまなデータソース間でデータをリアルタイムに同期できます。 詳細については、「DTS リアルタイム同期の構成」をご参照ください。

2.4 構成の完了

image

3. 検索テストの実行

データソースが構成されたら、データの検索を開始できます。 OpenSearch コンソールには、検索テストを実行するための [検索テスト] ページが用意されています。 ビジネス要件に基づいてデータ検索の句とフィールドを構成できます。 次の例では、[検索テスト] ページでテストを実行する方法について説明します。 その他の検索方法の詳細については、「API の概要」および「SDK の概要」をご参照ください。 [検索テスト] ページで検索テストを実行するには、[句] または [パラメーター] の横にあるプラスアイコンにポインターを移動し、ドロップダウンリストから使用する句またはフィールドを選択し、句またはフィールドを指定して、[検索] をクリックします。

手順:

1. 左側のナビゲーションウィンドウで、[機能拡張] > [検索テスト] を選択します。 [検索テスト] ページで、クエリパラメーターの QUERY 句を指定します。 これは必須パラメーターです。

image

2. 必要に応じて、句またはフィールドを追加します。

imageimage

句の説明

QUERY 句: query 句

FILTER 句: filter 句

SORT 句: sort 句

DISTINCT 句: distinct 句

AGGREGATE 句: aggregate 句

KVPAIR 句: kvpair 句

CONFIG 句: config 句

フィールドの説明

表示フィールド - fetch_fields: 表示するフィールドを設定します。 複数のフィールドはセミコロン (;) で区切ります。

クエリ分析 - qp: クエリ分析の名前を設定します。

基本ソート式 - first_rank_name: 基本ソートの名前を設定します。

高度ソート式 - second_rank_name: 高度ソートの名前を設定します。

検索結果サマリー構成 - summary: 検索結果のサマリーを構成します。 詳細については、「検索結果サマリー」をご参照ください。

カテゴリ予測 - category_prediction と元の検索クエリ - raw_query: クエリワードとカテゴリ予測の名前を設定します。

再検索ポリシー - re_search: 再検索ポリシーを設定します。 詳細については、「検索リクエストの開始」をご参照ください。

ビジネス情報 - biz とユーザー ID - user_id: ビジネス情報とユーザー ID を設定します。 詳細については、「検索リクエストの開始」をご参照ください。

A/B テスト - abtest: A/B テストの名前を設定します。

無効化フィールド - disable: 1 つ以上のフィールドを無効にします。 例: disable = qp。

高度な機能の使用方法の詳細については、対応するトピックをご参照ください。