このトピックでは、シナリオを使用して、Alibaba Cloud Elasticsearch (ES) クラスターの作成、インデックスの作成、およびデータの検索方法を説明します。このシナリオでは、金融サービス会社が ES を使用して、その資産管理プロダクトの検索機能を提供します。
開始する前に
データの説明: このトピックで使用されるデータは、会社の資産管理プロダクトに関するサンプル情報です。
バージョン情報: Alibaba Cloud ES は複数の バージョン をサポートしています。バージョンが異なると、提供される機能も異なります。このトピックでは、バージョン
8.17を例として使用します。課金情報: このトピックでは、従量課金インスタンスの作成方法を説明します。使用したリソースに対して課金されます。詳細については、「課金の概要」をご参照ください。このトピックの操作には
20元未満の費用がかかります。Kibana: Kibana は、データ分析と可視化のための柔軟なツールです。Kibana を使用して、ES インデックス内のデータを検索、表示、および操作できます。
RESTful API: HTTP 経由で ES クラスターと対話できます。このトピックの操作 (インデックスの作成、データの挿入と検索、インデックスの削除など) は、RESTful API を使用して実行されます。
前提条件
Virtual Private Cloud (VPC) と vSwitch が必要です。VPC と vSwitch を使用して、ES インスタンスを保護し、他のリソースとの通信を有効にし、高可用性を実現できます。
ES インスタンスを作成するときは、適切な VPC と vSwitch を選択する必要があります。VPC と vSwitch は、ES インスタンスと同じリージョンとゾーンにある必要があります。インスタンスの作成後に VPC または vSwitch を変更することはできません。
次の表に、このトピックで使用される VPC と vSwitch の主要なパラメーターを示します。
カテゴリ | 構成例 |
VPC |
|
vSwitch | ゾーン: 杭州ゾーン I |
手順
次のステップでは、Alibaba Cloud ES クラスターを作成し、データを検索する方法について説明します。
インスタンスの作成: Alibaba Cloud ES インスタンスは、使いやすく、スケーラブルで、安定した検索エンジン プラットフォームを提供するマネージド ES サービスです。インスタンス内ですべてのデータストレージ、検索、および分析操作を実行する必要があります。
インスタンスへのアクセス: Kibana を使用してインスタンスにアクセスします。Kibana を使用して、インデックスとドキュメントの作成、データの挿入、およびデータの検索を行うことができます。
インデックスの作成: サンプルの資産管理プロダクト情報を格納するインデックスを作成します。また、各フィールドの検索タイプとトークン化メソッドも定義します。
説明インデックスは、ES が関連ドキュメントを格納するために使用する論理コンテナーです。インデックスはデータの整理と管理に役立ち、クエリ効率を大幅に向上させます。
ドキュメントの作成とデータの挿入: ドキュメントを作成し、サンプルの資産管理プロダクト情報を作成したインデックスに挿入します。これにより、データをクエリできるようになります。
データの検索: 全文検索を使用するか、条件を指定してプロダクトを検索します。
(オプション) 次のステップ: テストインデックスの削除、データの移行、クラスターのスケールアウト、インスタンスのリリースなど、オプションのステップを実行します。
ステップ 1: インスタンスの作成
Elasticsearch 購入ページに移動します。
次の表の説明に従って、インスタンスパラメーターを構成します。
次の表の説明に従って、インスタンスパラメーターを構成します。
説明記載されていないパラメーターはデフォルト値のままにします。インスタンス作成のパラメーターの詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」をご参照ください。
パラメーター
説明
プロダクトタイプ
従量課金を選択します。
リージョンとゾーン
中国 (杭州) と ゾーン I を選択します。
ゾーン数
単一ゾーンを選択します。
VPC と VSwitch
前提条件セクションで作成した VPC と vSwitch を選択します。
インスタンスタイプとバージョン
ベクトル拡張とバージョン
8.17.0を選択します。インスタンス名
ES_test に設定します。
ユーザー名とパスワード
ユーザー名は elastic で、変更できません。カスタムパスワードを指定します。
[今すぐ購入] をクリックして支払いを完了します。支払いが完了すると、インスタンスが作成されます。
説明インスタンスの作成プロセスには約
20分かかります。インスタンスのステータスを表示します。
トップメニューバーで、[中国 (杭州)] リージョンを選択します。左側のナビゲーションウィンドウで、[Elasticsearch インスタンス] をクリックします。インスタンスリストで作成されたインスタンスのステータスを表示できます。
インスタンスのステータスが [アクティブ] の場合、インスタンスは作成されており、次のステップに進むことができます。
ステップ 2: インスタンスへのアクセス
データ可視化ページに移動します。
Elasticsearch インスタンスリストで、管理するインスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
Kibana パブリックアクセスホワイトリストを構成します。
このトピックでは、インターネット経由で Kibana にアクセスする方法を説明します。アクセス制限を防ぐには、クライアントの IP アドレスを Kibana パブリックアクセスホワイトリストに追加する必要があります。
説明Kibana アクセスのネットワーク構成とよくある質問 (FAQ) の詳細については、「Kibana コンソールへのログオン」をご参照ください。
[Kibana] セクションで、[構成の変更] をクリックします。
[Kibana パブリックアクセスホワイトリスト] の横にある [変更] をクリックし、クライアントの IP アドレスをホワイトリストに追加します。
Kibana Dev Tools に移動します。
Kibana の Dev Tools を使用して ES インスタンスにアクセスし、インデックスの作成、ドキュメントの作成、データの挿入、データの検索などの操作を実行できます。
データ可視化ページに戻ります。[Kibana] セクションで、[インターネット経由でアクセス] をクリックします。
ユーザー名とパスワードを入力し、[ログイン] をクリックします。
説明ユーザー名は [elastic] で、パスワードはステップ 1 で指定したものです。
ようこそページで、[自分で探索] をクリックします。
左上隅にある
アイコンをクリックし、[管理] > [Dev Tools] を選択して Dev Tools コンソールに移動します。
接続をテストします。
[コンソール] タブで、
GET /コマンドを実行して ES インスタンスにアクセスします。次の結果が返された場合、接続は成功です。
ステップ 3: インデックスの作成
product_info という名前のインデックスを作成します。productName フィールドと describe フィールドを全文検索と粗粒度のトークン化用に構成します。annual_rate フィールドを完全一致用に構成します。次のサンプルコードに構成を示します。
PUT /product_info
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"productName": {
"type": "text",
"analyzer": "ik_smart"
},
"annual_rate":{
"type":"keyword"
},
"describe": {
"type": "text",
"analyzer": "ik_smart"
}
}
}
}次の結果が返された場合、インデックスは正常に作成されます。
ステップ 4: ドキュメントの作成とデータの挿入
_bulk API を使用して、バッチ操作で複数のドキュメントを product_info インデックスに追加します。各ドキュメントには、プロダクト名、年利率、説明など、資産管理プロダクトに関するデータが含まれています。次のサンプルコードは、ドキュメントを追加する方法を示しています。
{"index":{}} は、新しいドキュメントを挿入することを示します。ES は、各ドキュメントに一意の ID を自動的に生成します。
POST /product_info/_bulk
{"index":{}}
{"productName":"Wealth Management Product A","annual_rate":"3.2200%","describe":"180-day fixed-term product. Minimum investment: 20,000. Stable returns. Optional push notifications."}
{"index":{}}
{"productName":"Wealth Management Product B","annual_rate":"3.1100%","describe":"90-day scheduled investment product. Minimum investment: 10,000. Daily push notifications for credited returns."}
{"index":{}}
{"productName":"Wealth Management Product C","annual_rate":"3.3500%","describe":"270-day scheduled investment product. Minimum investment: 40,000. Daily push notifications for immediately credited returns."}
{"index":{}}
{"productName":"Wealth Management Product D","annual_rate":"3.1200%","describe":"90-day scheduled investment product. Minimum investment: 12,000. Daily push notifications for credited returns."}
{"index":{}}
{"productName":"Wealth Management Product E","annual_rate":"3.0100%","describe":"Recommended 30-day scheduled investment product. Minimum investment: 8,000. Daily push notifications for returns."}
{"index":{}}
{"productName":"Wealth Management Product F","annual_rate":"2.7500%","describe":"Popular 3-day short-term product. No service fees. Minimum investment: 500. Return notifications sent by text message."}結果に "errors": false が含まれている場合、データは正常に挿入されます。
ステップ 5: データの検索
シナリオ 1: 全文検索
この例では、match クエリを使用して describe フィールドのキーワードを照合します。このクエリは、product_info インデックスで、説明に Daily push notifications for credited returns が含まれるすべてのプロダクトを検索します。次のコードにクエリを示します。
GET /product_info/_search
{
"query": {
"match": {
"describe": "Daily push notifications for credited returns"
}
}
}シナリオ 2: 条件による検索
この例では、range クエリを使用して product_info インデックスで年利率が 3.0000% から 3.1300% の間のプロダクトを検索します。次のコードにクエリを示します。
GET /product_info/_search
{
"query": {
"range": {
"annual_rate": {
"gte": "3.0000%",
"lte": "3.1300%"
}
}
}
}(オプション) 次のステップ
インデックスの削除
次のコマンドを実行して、このトピックで作成したテストインデックスを削除します。
DELETE /product_info次の結果が返されます。
データの移行とクラスターのスケールアウト
データ移行: ビジネスデータを Alibaba Cloud ES に移行して、その後のクエリと分析を行うことができます。
クラスターのスケールアウト: 現在のクラスター構成がビジネスのワークロードまたはパフォーマンス要件を満たせない場合は、必要に応じてクラスターをスケールアウトできます。
インスタンスのリリース
ES インスタンスが不要になった場合は、不要な課金を避けるためにすぐにリリースしてください。
インスタンスがリリースされると、データを復元することはできません。注意して進めてください。インスタンスをリリースする前に、データをバックアップすることをお勧めします。インスタンスがリリースされると、課金は停止します。
関連ドキュメント
Alibaba Cloud ES クラスターへのアクセスと構成方法の詳細については、「Elasticsearch クラスターへのアクセスと構成」をご参照ください。
ApsaraDB RDS for MySQL インスタンスから Alibaba Cloud ES クラスターにデータを同期する方法の詳細については、「同期方法の選択」をご参照ください。