LindormSearch は、Elasticsearch と互換性のある一連の RESTful API を提供します。 curl コマンドを実行して API を呼び出し、LindormSearch の検索インデックスとドキュメントを管理できます。
前提条件
Lindorm インスタンスで LindormSearch が有効化されています。 詳細については、「LindormSearch を有効化する」をご参照ください。
クライアントの IP アドレスが Lindorm インスタンスのホワイトリストに追加されています。 詳細については、「ホワイトリストを構成する」をご参照ください。
LindormSearch への接続
次のコマンドを実行して LindormSearch に接続し、クラスタ内のインデックスに関する情報を表示します。
curl -XGET "http://<url>/_cat/indices?v" -u <username>:<password>
パラメータ
パラメータ | 説明 |
url | Elasticsearch 用の LindormSearch エンドポイント。 エンドポイントを取得する方法の詳細については、「Elasticsearch 用の LindormSearch エンドポイント」をご参照ください。 重要
|
username | LindormSearch へのアクセスに使用するユーザー名とパスワード。 デフォルトのユーザー名とパスワードを取得するには、次の手順を実行します。左側のナビゲーションウィンドウで、[データベース接続] をクリックします。表示されるページで、[検索エンジン] タブをクリックします。次に、このタブに表示されているユーザー名とパスワードを確認します。 |
password |
次のコマンドは、LindormSearch に接続する方法の例を示しています。
curl -XGET "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/_cat/indices?v" -u <username>:<password>
LindormSearch に接続すると、次の結果が返されます。クラスタにインデックスが作成されていないため、結果にはインデックス情報は含まれていません。
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
LindormSearch で操作を実行する
次の例は、一般的な curl コマンドを使用して LindormSearch で操作を実行する方法を示しています。 その他のコマンドの詳細については、「Elasticsearch ドキュメント」をご参照ください。
インデックスの管理
インデックスを作成する。
LindormSearch に lindorm_search という名前のインデックスを作成します。
curl -XPUT "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/lindorm_search" -u <username>:<pasword> -H 'Content-Type: application/json' -d ' { "settings": { "number_of_shards": 4 // シャードの数を 4 に設定します。 } }'
重要LindormSearch のノードあたりの最大シャード数は
1000
です。この制限を増やすには、Lindorm テクニカルサポート(DingTalk ID:s0s3eg3)に連絡してください。インデックスが作成されると、次の結果が返されます。
{"acknowledged":true,"shards_acknowledged":true,"index":"lindorm_search"}
インデックスのスキーマを構成する。
lindorm_search のスキーマを
_doc
タイプの_mapping
に設定します。 指定されたスキーマには、id
、name
、およびdescribe
フィールドが含まれています。curl -XPUT "http://ld-t4n5668xk31ui****-proxy-search-public.lindorm.rds.aliyuncs.com:30070/lindorm_search/_doc/_mapping" -u <username>:<pasword> -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>:<pasword>
次の結果が返されます。
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":"dood 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" } }