可视化用户界面

云原生多模数据库 Lindorm搜索引擎提供可视化用户界面,您可以通过该界面使用RESTful接口访问Lindorm搜索引擎。本文介绍了如何通过Lindorm控制台登录UI界面并执行读写请求。

前提条件

  • 实例的服务类型为Lindorm。如何查看服务类型,请参见查看产品系列

  • 已开通Lindorm搜索引擎。如何开通,请参见开通指南

  • 已将客户端的IP地址添加至Lindorm白名单。如何添加,请参见设置白名单

    重要

    如果您的客户端默认使用IPv6协议,请将其关闭,否则会导致白名单验证失败。

注意事项

Lindorm搜索引擎UI界面目前均处于公测阶段。如需使用实例的服务类型为Lindorm_V2的搜索引擎UI界面请联系Lindorm技术支持(钉钉号:s0s3eg3)。如何查看服务类型,请参见查看产品系列

操作步骤

登录UI界面

  1. 登录Lindorm管理控制台

  2. 在页面左上角,选择实例所属的地域。

  3. 实例列表页,单击目标实例ID或者目标实例所在行操作列的管理

  4. 在左侧导航栏,单击数据库连接,单击搜索引擎页签。获取默认用户名默认初始密码

    说明

    首次访问必须使用获取的默认用户名默认初始密码登录搜索UI访问界面,后续登录可以使用默认用户创建的其它用户登录集群管理UI,用户管理相关的操作请参见用户及权限管理

  5. 在左侧导航栏中,单击搜索引擎

  6. UI访问区域,单击ClusterManager公网ClusterManager专有网络登录集群管理系统。

  7. 在弹出的登录页面,输入步骤4中已获取的默认用户名默认初始密码

    说明

    首次访问时,由于页面资源加载的原因,需要稍作等待才能进入UI界面。

读写操作

重要

读写操作语法适配 ES API 7.x版本。

进入Dev Tools

  1. 单击界面左上角的image图标,打开侧边栏,单击Management > Dev Tools

    image

  2. 进入Dev Tools,可通过RESTful接口访问Lindorm搜索引擎。

    image

查看所有已创建索引

使用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,创建索引。

在请求体中,可以指定索引的settingsmappings信息。

  • 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,查看指定索引的信息,包括索引的settingsmappings信息。

    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"
            }
          }
        }
      }
    }
  • 仅查看settingsmappings信息,可以通过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在索引中已存在,则会使用新写入数据覆盖已存在的数据。

    以指定id1为例:

    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搜索引擎会自动给该条数据生成idb_MsCJEB3g4To6JSOeF6

  • 使用Update API,更新已有数据的部分字段。其中,路径参数中需要携带数据id,请求体中需要包含doc参数。

    以指定id1firstName更新为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,查看索引的数据。在请求体中,可以选择指定查询条件。

    以指定lastNameSmith为例:

    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的数据。

    以指定id1为例:

    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的数据。

以指定id1为例:

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,代表已成功删除指定数据。