云原生多模數據庫 Lindorm搜索引擎提供可視化用戶界面,您可以通過該界面使用RESTful接口訪問Lindorm搜索引擎。本文介紹了如何通過Lindorm控制臺登錄UI界面并執行讀寫請求。
前提條件
操作步驟
登錄UI界面
登錄Lindorm管理控制臺。
在頁面左上角,選擇實例所屬的地域。
在實例列表頁,單擊目標實例ID或者目標實例所在行操作列的管理。
在左側導航欄中,單擊搜索引擎。
在UI訪問區域,單擊公網訪問或專有網絡訪問登錄集群管理系統。
在彈出的登錄頁面,輸入UI訪問區域中的默認用戶名和默認初始密碼。
說明首次訪問時,由于頁面資源加載的原因,需要稍作等待才能進入UI界面。
首次訪問必須使用獲取的默認用戶名和默認初始密碼登錄搜索UI訪問界面,后續登錄可以使用默認用戶創建的其他用戶登錄集群管理UI,用戶管理相關的操作請參見用戶及權限管理。
讀寫操作
讀寫操作語法適配 ES API 7.x版本。
進入Dev Tools
單擊界面左上角的圖標,打開側邊欄,單擊
。進入Dev Tools,可通過RESTful接口訪問Lindorm搜索引擎。
查看所有已創建索引
使用cat API,查看搜索引擎中所有已創建的索引基本信息。
在路徑參數中加入參數v
,頂部會顯示每一列對應的信息名稱。
GET /_cat/indices?v
返回結果:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open test2 test2 2 0 0 0 416b 416b
green open test3 test3 2 0 1 0 16.8kb 16.8kb
green open test1 test1 1 0 0 0 208b 208b
green open .kibana_1 .kibana_1 1 0 1 0 5.1kb 5.1kb
創建索引
使用Create index API,創建索引。
在請求體中,可以指定索引的settings和mappings信息。
settings:索引的配置,如:索引分片數(index.number_of_shards),數據從寫入到可見的最長間隔時間(index.refresh_interval)等。
mappings:索引的結構,如:索引中的字段,每個字段的類型等。
PUT /test { "settings": { "index.number_of_shards": 2, "index.refresh_interval": "10s" }, "mappings": { "properties": { "firstName": { "type": "keyword" }, "lastName": { "type": "keyword" } } } }
返回結果:
{ "acknowledged": true, "shards_acknowledged": true, "index": "test" }
查看指定索引信息
使用Get index API,查看指定索引的信息,包括索引的settings和mappings信息。
GET /test
返回結果:
{ "test": { "aliases": {}, "mappings": { "properties": { "firstName": { "type": "keyword" }, "lastName": { "type": "keyword" } } }, "settings": { "index": { "search": { "slowlog": { "level": "DEBUG", "threshold": { "fetch": { "warn": "1s", "trace": "200ms", "debug": "500ms", "info": "800ms" }, "query": { "warn": "10s", "trace": "500ms", "debug": "1s", "info": "5s" } } } }, "refresh_interval": "10s", "indexing": { "slowlog": { "level": "DEBUG", "threshold": { "index": { "warn": "10s", "trace": "500ms", "debug": "2s", "info": "5s" } } } }, "number_of_shards": "2", "provided_name": "test4", "creation_date": "1722418296110", "number_of_replicas": "0", "uuid": "test4", "version": { "created": "136287927" } } } } }
僅查看settings或mappings信息,可以通過Get index settings API或Get mapping API來獲取。
以獲取settings信息為例。
GET /test/_settings
返回結果:
{ "test": { "settings": { "index": { "search": { "slowlog": { "level": "DEBUG", "threshold": { "fetch": { "warn": "1s", "trace": "200ms", "debug": "500ms", "info": "800ms" }, "query": { "warn": "10s", "trace": "500ms", "debug": "1s", "info": "5s" } } } }, "refresh_interval": "10s", "indexing": { "slowlog": { "level": "DEBUG", "threshold": { "index": { "warn": "10s", "trace": "500ms", "debug": "2s", "info": "5s" } } } }, "number_of_shards": "2", "provided_name": "test4", "creation_date": "1722418296110", "number_of_replicas": "0", "uuid": "test4", "version": { "created": "136287927" } } } } }
更新索引配置
使用Update index settings API可以更新索引中支持動態修改的配置項。
以修改index.refresh_interval
配置為例,可以將數據從寫入到可見的間隔時間修改為1s(最短間隔為1s)。
PUT /test/_settings
{
"index": {
"refresh_interval": "1s"
}
}
返回結果:
{
"acknowledged": true
}
向索引中寫入數據
使用Index API,向索引中寫入數據。
使用PUT方法,需要顯式指定id。若指定id在索引中已存在,則會使用新寫入數據覆蓋已存在的數據。
以指定id是
1
為例:PUT /test/_doc/1 { "firstName": "John", "lastName": "Smith" }
返回結果:
{ "_index": "test", "_type": "_doc", "_id": "1", "_version": 1, "result": "created", "_shards": { "total": 1, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1 }
使用POST方法,可不指定id,Lindorm搜索引擎會自動給該條數據生成id。
POST /test/_doc { "firstName": "Frank", "lastName": "Brown" }
返回結果:
{ "_index": "test", "_type": "_doc", "_id": "b_MsCJEB3g4To6JSOeF6", "_version": 1, "result": "created", "_shards": { "total": 1, "successful": 1, "failed": 0 }, "_seq_no": 0, "_primary_term": 1 }
Lindorm搜索引擎會自動給該條數據生成id:
b_MsCJEB3g4To6JSOeF6
。使用Update API,更新已有數據的部分字段。其中,路徑參數中需要攜帶數據id,請求體中需要包含
doc
參數。以指定id是
1
,firstName更新為Lane
為例:POST /test/_update/1 { "doc": { "firstName": "Lane" } }
返回結果:
{ "_index": "test", "_type": "_doc", "_id": "1", "_version": 2, "result": "updated", "_shards": { "total": 1, "successful": 1, "failed": 0 }, "_seq_no": 1, "_primary_term": 1 }
查看索引數據
使用Search API,查看索引的數據。在請求體中,可以選擇指定查詢條件。
以指定lastName是
Smith
為例:GET /test/_search { "query": { "match": { "lastName": "Smith" } } }
返回結果:
{ "took": 4, "timed_out": false, "_shards": { "total": 2, "successful": 2, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 1, "relation": "eq" }, "max_score": 0.18232156, "hits": [ { "_index": "test", "_id": "1", "_score": 0.18232156, "_source": { "firstName": "Lane", "lastName": "Smith" } } ] } }
使用Get API,可以查看指定id的數據。
以指定id是
1
為例:GET /test/_doc/1
返回結果:
{ "_index": "test", "_id": "1", "_version": 2, "_seq_no": 1, "_primary_term": 1, "found": true, "_source": { "firstName": "Lane", "lastName": "Smith" } }
刪除索引數據
使用Delete API,刪除索引中指定id的數據。
以指定id是1
為例:
DELETE /test/_doc/1
返回結果:
{
"_index": "test",
"_type": "_doc",
"_id": "1",
"_version": 3,
"result": "deleted",
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"_seq_no": 2,
"_primary_term": 1
}
返回值successful
為1,代表已成功刪除指定數據。