Lindorm 検索エンジンは、Elasticsearch と互換性のある RESTful API を提供します。これらの API を呼び出して、検索インデックスおよびドキュメントを管理するために curl コマンドを使用できます。
前提条件
検索エンジンを有効化します。詳細については、「有効化ガイド」をご参照ください。
ご利用のクライアントの IP アドレスを Lindorm インスタンスのホワイトリストに追加します。詳細については、「ホワイトリストの設定」をご参照ください。
検索エンジンへの接続
次のコマンドを実行して検索エンジンに接続し、クラスター内のインデックス情報を表示します。
curl -XGET "http://<url>/_cat/indices?v" -u <username>:<password> パラメーターの説明
パラメータ | 説明 |
url | 検索エンジンの Elasticsearch 互換エンドポイントです。エンドポイントを取得する方法については、「Elasticsearch 互換エンドポイント」をご参照ください。 重要
|
username | 検索エンジンにアクセスするためのユーザー名およびパスワードです。 デフォルトのユーザー名およびパスワードを取得するには、コンソール左側のナビゲーションウィンドウで Database Connections を選択し、Search Engine タブをクリックします。認証情報は Search Engine タブに表示されます。 |
password |
以下は接続の例です。
curl -XGET "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/_cat/indices?v" -u <username>:<password>接続が確立されると、次の結果が返されます。インデックスが作成されていないため、結果にはインデックス情報が含まれません。
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size検索エンジンの利用
以下のセクションでは、一般的な curl コマンドを紹介します。詳細については、Elasticsearch 公式ドキュメントをご参照ください。
インデックスの管理
インデックスを作成する。
検索エンジンに lindorm_search という名前のインデックスを作成します。
curl -XPUT "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/lindorm_search" -u <username>:<password> -H 'Content-Type: application/json' -d ' { "settings": { "number_of_shards": 4 // プライマリシャード数を 4 に設定 } }'重要検索エンジンのシングルノードは最大
1000個のシャードをサポートします。この上限を引き上げる必要がある場合は、Lindorm 技術サポート (DingTalk ID: s0s3eg3) までご連絡ください。操作が成功すると、次の結果が返されます。
{"acknowledged":true,"shards_acknowledged":true,"index":"lindorm_search"}インデックススキーマの設定
lindorm_search インデックスのスキーマを
_mapping、タイプを_docに設定します。スキーマにはid、name、およびdescribeフィールドを含める必要があります。curl -XPUT "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/lindorm_search/_doc/_mapping" -u <username>:<password> -H 'Content-Type: application/json' -d ' { "_doc":{ "properties": { "id": {"type": "long"}, "name":{"type":"keyword"}, "describe": {"type": "text"} } } }'設定が成功すると、次の結果が返されます。
{"_index":"lindorm_search","_type":"_doc","_id":"_mapping","_version":1,"result":"created","_shards":{"total":1,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}インスタンス内のインデックスの表示
curl -XGET "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/_cat/indices?v" -u <username>:<password>次の結果が返されます。
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open lindorm_search lindorm_search 1 0 0 0 208b 208b現在のインスタンスにインデックスが存在しない場合、返される結果にはインデックス情報が含まれません。
インデックスを削除する。
curl -XDELETE "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/lindorm_search" -u <username>:<password>インデックスが正常に削除されると、次の結果が返されます。
{"acknowledged":true}
ドキュメントの管理
単一のドキュメントを作成する。
lindorm_search インデックスに ID が 1 のドキュメントを作成します。
curl -XPOST "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/lindorm_search/_doc/1" -u <username>:<password> -H 'Content-Type: application/json' -d ' { "id":100, "name":"shenzhen", "describe":"just a test" }'複数のドキュメントを作成する。
lindorm_search インデックスに ID が 1 および 2 の 2 つのドキュメントを作成します。
curl -XPOST "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/_bulk" -u <username>:<password> -H 'Content-Type: application/json' -d' { "index" : { "_index": "lindorm_search", "_type" : "_doc", "_id" : "1" } } {"id":200,"name":"shanghai","describe":"just"} { "index" : { "_index": "lindorm_search", "_type" : "_doc", "_id" : "2" } } {"id":300,"name":"beijing","describe":"good luck"} 'ドキュメントの検索
ID が 1 のドキュメントを検索します。
curl -XGET "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/lindorm_search/_doc/1?pretty" -u <username>:<password>次の結果が返されます。
{ "_index" : "lindorm_search", "_id" : "1", "_version" : 1, "_seq_no" : 0, "_primary_term" : 1, "found" : true, "_source" : { "id" : 100, "name" : "shenzhen", "describe" : "just a test" } }