Lindorm搜索引擎提供了一系列兼容Elasticsearch RESTful風格的API,您可以通過curl命令調用這些API,管理搜索引擎中的搜索索引及文檔。
前提條件
已開通搜索引擎(Elasticsearch兼容版本)。具體操作,請參見開通指南(Elasticsearch兼容版本)。
已將客戶端的IP地址加入到Lindorm實例的白名單中。具體操作,請參見設置白名單。
連接搜索引擎
執行以下命令,連接搜索引擎,查看集群中的索引信息。
curl -XGET "http://<url>/_cat/indices?v" -u <username>:<password>
參數說明
參數 | 說明 |
url | 搜索引擎(Elasticsearch兼容版本)的Elasticsearch兼容連接地址。如何獲取,請參見Elasticsearch兼容版本。 重要
|
username | 訪問搜索引擎(Elasticsearch兼容版本)的用戶名和密碼。 默認用戶名和密碼的獲取方式:在控制臺的左側導航欄,選擇數據庫連接,單擊搜索引擎頁簽,在搜索引擎頁簽可獲取。 |
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>
創建成功將返回如下結果:
{"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>:<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的兩個文檔。
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" } }