全部產品
Search
文件中心

Lindorm:通過curl命令串連並使用搜尋引擎

更新時間:Jul 06, 2024

Lindorm搜尋引擎提供了一系列相容Elasticsearch RESTful風格的API,您可以通過curl命令調用這些API,管理搜尋引擎中的搜尋索引及文檔。

前提條件

  • 已開通搜尋引擎。具體操作,請參見開通指南

  • 已將用戶端的IP地址加入到Lindorm執行個體的白名單中。具體操作,請參見設定白名單

串連搜尋引擎

執行以下命令,串連搜尋引擎,查看叢集中的索引資訊。

curl -XGET "http://<url>/_cat/indices?v" -u <username>:<password>  

參數說明

參數

說明

url

搜尋引擎的Elasticsearch相容串連地址。如何擷取,請參見Elasticsearch相容地址

重要
  • 如果應用部署在ECS執行個體,建議您通過專用網路訪問Lindorm執行個體,可獲得更高的安全性和更低的網路延遲。

  • 如果應用部署在本地,在通過公網串連Lindorm執行個體前,需在控制台開通公網地址。開通方式:在控制台的左側導覽列,選擇資料庫連接,單擊搜尋引擎頁簽,在頁簽右上方單擊開通公網地址

  • 通過專用網路訪問Lindorm執行個體,url請填寫Elasticsearch相容地址對應的專用網路地址。通過公網訪問Lindorm執行個體,url請填寫Elasticsearch相容地址對應的公網地址。

username

訪問搜尋引擎的使用者名稱和密碼。

預設使用者名和密碼的擷取方式:在控制台的左側導覽列,選擇資料庫連接,單擊搜尋引擎頁簽,在搜尋引擎頁簽可擷取。

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,包含idnamedescribe欄位。

    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"
      }
    }