欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elasticsearch入门 - 简单使用

程序员文章站 2022-07-05 08:04:00
...

开篇

在我们了解过 Elasticsearch 的概念,并且在我们的机器上安装过 es 后, 我们就可以简单操作一下。

我们前面提到 ES 是基于一个搜索库开发的,提供了大量 RESTful API 接口,因此我们可以直接使用 curl 命令 或者 postman 这样的客户端去访问这些接口。

集群状况检查

es 提供了一 套api,叫做 cat api,可以查看 es 中各种各样的数据

GET http://localhost:9200/_cat/health?v

epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent

1580201783 08:56:23  docker-cluster yellow          1         1      3   3    0    0        3             0                  -            50.0%

上面查询出来的信息有很多,我们暂时只关注 status 以及其对应的值: yellow。

如何快速了解集群的健康状况?

status 对应了三个值,分别是 green,yellow,red,他们分别代表了集群的三种健康状态。

  • green

每个索引的primary shard和replica shard都是active状态的

  • yellow

每个索引的primary shard都是active状态的,但是部分replica shard不是active状态,处于不可用的状态

  • red

不是所有索引的 primary shard 都是 active 状态的,部分索引有数据丢失了

索引操作

查看索引

GET http://localhost:9200/_cat/indices?v

创建索引

PUT http://localhost:9200/test_index?pretty

删除索引

DELETE http://localhost:9200/test_index?pretty

商品 document 的增删改查

  1. 新增商品

模版: PUT /index/type/id

请求体:

{
  "json数据"
}

添加一条商品数据 PUT http://localhost:9200/ecommerce/product/1

请求体:

{
    "name" : "黑人牙膏",
    "desc" :  "薄荷味",
    "price" :  30
}

提示:
es 会自动建立 index 和 type,不需要提前创建,而且 es 默认会对 document 每个field都建立倒排索引(后面会介绍),让其可以被搜索

  1. 查询商品

模版: GET /index/type/id

查询指定索引,类型,id 的商品信息 GET http://localhost:9200/ecommerce/product/1

  1. 修改商品 方式一

修改商品信息 PUT http://localhost:9200/ecommerce/product/1

请求体:

{
    "name" : "高露洁牙膏",
    "desc" :  "清洁口气",
    "price" :  30
}

这种方式有一个缺点,必须带上所有的field,才能去进行信息的修改

  1. 修改商品 方式二

修改商品信息 POST http://localhost:9200/ecommerce/product/1/_update

请求体:

{
  "doc": {
    "name": "云南白药牙膏"
  }
}
  1. 删除商品

删除一个商品信息 DELETE http://localhost:9200/ecommerce/product/1

总结

Elasticsearch 提供的检索功能非常复杂,这里介绍的是最基本的使用方法,后面会深入讲解学习。