ElatisSearch基本操作

160 阅读3分钟

「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」。

本次换为Kibana操作ElasticSearch

1.kibana安装

基于7.10版本安装,同es安装一样,参考csdnElasticSearch安装博客

安装后访问5601端口界面如下图所示:

主要使用kibana的devtools访问es,替代postman

2.索引的操作

2.1 创建索引及文档第一个示例

PUT twitter/_doc/1
{
  "user":"GB",
  "uid":1,
  "city":"Beijing",
  "province":"Benjing",
  "country":"China"
}

在kibana的devtools中创建索引及文档,使用如上参数

这个参数其实是一个新增文档的记录,但是这个文档对于的index也会随之创建,这是因为es无需先创建表结构,会根据文档自动创建index

2.2 开启关闭es自动创建索引的配置项

这其实是一个配置项,可以关闭

如下请求关闭

PUT _cluster/settings
{
  "persistent": {
    "action.auto_create_index":"false"
  }
}

其实也是一个请求,新增集群配置,设置自动创建索引为false.

删除此配置

PUT _cluster/settings
{
  "persistent": {
    "action.auto_create_index":null
  }
}

2.3 删除索引

DELETE twitter

2.4 单独创建索引

2.1中是通过新建文档的形式自动创建索引,也可以单独创建索引,并指定分片,副本,映射参数

PUT twitter

单独创建索引,使用默认参数 默认分片1,副本1

PUT twitter
{
  "settings": {
    "number_of_replicas": 2,
    "number_of_shards": 2
  },
  "mappings": {
      "properties":{
        "name":{
          "type":"text"
        },
        "id":{
          "type":"long"
        }
      }
  }
}

创建了一个两个分片,两个副本的索引,并指定了该索引的mappings

3. 文档的增删改查

3.1 新增文档

使用put请求新增文档

POST twitter/_doc/1
{
  "name":"zy",
  "id":1
}

其中twitter就是index名称,_doc就是默认的type名称,1是指定的文档id,如果不指定,es会自动生成一个随机id


3.2 删除文档

DELETE twitter/_doc/1

指定删除文档的id

3.3 修改文档

PUT twitter/_doc/1
{
  "name":"zy",
  "id":1
}

每次修改会使文档的version加1,如果指定id的文档不存在,会自动创建一个新文档,version为1

3.4 查询文档

GET twitter/_search?pretty=true

不添加所有参数,直接查询 返回的数据如下

  1. took 为请求时间
  2. timed_out为超时时间,默认请求不超时,如果对响应时间有要求,可以在请求路径上添加timed_out参数
  1. _shards返回参与查询的分片数
    1. total 总分片数
    2. successful 成功2个
    1. skipper 跳过0个
    2. failed 失败0个
  1. hits 是返回的数据列表,es会返回匹配的文档个数,以及默认前10个文档
    1. total 匹配的总数量
    2. max_score 文档相关性 1为中性 此次查询为不加任何参数查询,所以与所有文档的相关性都一样,如果有参数,会默认安装文档的相关性倒序排序,相关性高的在上面,类似搜索引擎
    1. hits 数据列表,如果数据比较多的情况下,会返回前10条数据 每条数据中包含了文档的_index,_type,_id,_score,_source属性
      1. _source是对应文档的数据

还可以根据文档id查询文档数据

GET twitter/_doc/1

查询文档id为1的数据