云原生多模数据库 Lindorm搜索引擎提供可视化用户界面,您可以通过该界面使用RESTful接口访问Lindorm搜索引擎。本文介绍了如何通过Lindorm控制台登录UI界面并执行读写请求。
前提条件
注意事项
Lindorm搜索引擎UI界面目前均处于公测阶段。如需使用实例的服务类型为Lindorm_V2的搜索引擎UI界面请联系Lindorm技术支持(钉钉号:s0s3eg3)。如何查看服务类型,请参见查看产品系列。
操作步骤
登录UI界面
登录Lindorm管理控制台。
在页面左上角,选择实例所属的地域。
在实例列表页,单击目标实例ID或者目标实例所在行操作列的管理。
在左侧导航栏,单击数据库连接,单击搜索引擎页签。获取默认用户名和默认初始密码。
说明首次访问必须使用获取的默认用户名和默认初始密码登录搜索UI访问界面,后续登录可以使用默认用户创建的其它用户登录集群管理UI,用户管理相关的操作请参见用户及权限管理。
在左侧导航栏中,单击搜索引擎。
在UI访问区域,单击ClusterManager公网或ClusterManager专有网络登录集群管理系统。
在弹出的登录页面,输入步骤4中已获取的默认用户名和默认初始密码。
说明首次访问时,由于页面资源加载的原因,需要稍作等待才能进入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,代表已成功删除指定数据。