快速上手ES

  • ES 采用 JSON 形式的 RESTFUL API 接受数据并响应,操作起来极为简单,只需要使用 PostMan 即可
  • 我这里使用的不是 PostMan 你们随意只要可以发送 HTTP 请求即可

查看集群的健康情况

GET /_cat/health?v

  • 以下是对返回的参数的解释
  • cluster:集群名称
  • status:集群状态
    • green 代表健康
    • yellow 代表分配了所有主分片,但至少缺少一个副本,此时集群数据仍旧完整
    • red 代表部分主分片不可用,可能已经丢失数据
  • node.total:代表在线的节点总数量
  • node.data:代表在线的数据节点的数量
  • shardsactive_shards:存活的分片数量
  • priactive_primary_shards:存活的主分片数量,正常情况下,shards 的数量是 pri 的两倍
  • relorelocating_shards:迁移中的分片数量,正常情况为 0
  • initinitializing_shards:初始化中的分片数量,正常情况为 0
  • unassignunassigned_shards:未分配的分片,正常情况为 0
  • pending_tasks:准备中的任务,任务指迁移分片等,正常情况为 0
  • max_task_wait_time:任务最长等待时间
  • active_shards_percent:正常分片百分比,正常情况为 100%

索引操作

查看集群中的索引

GET /_cat/indices?v

创建索引

  • 语法如下:
  • 这里 pretty 的作用是格式化返回的 JSON 串,可以不加
PUT /索引名称
PUT /索引名称?pretty
  • 示例如下:
PUT /my_index?pretty

删除索引

DELETE /索引名称?pretty

CRUD

新增

  • 语法如下:
PUT /index/type/id
  • 新增 3 条数据格式如下:
  • 第一条
PUT article/_doc/1

{
    "title":"Java从入门到精通",
    "red":101,
    "content":"Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程"
}
  • 第二条
PUT article/_doc/2
{
    "title":"JavaEE从入门到入土",
    "red":50,
    "content":"Java EE 是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用。在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本"
}
  • 第三条
PUT article/_doc/3
{
    "title":"PHP从入门到精通",
    "red":50,
    "content":"众所周知,PHP是世界上最好的语言"
}

查询

  • 语法如下:
GET /index/type/id
  • 示例如下:

  • 查询结果解释
  • _index:该文档属于哪个索引
  • _type:相当于表 ES一直在弱化 type,现在的 type 实际上都是 _doc,ES9 之后将彻底删除 type
  • _id:文档的唯一标识,相当于主键,可以手动生成,也可以自动
  • _seq_no:递增的序列号,保证每次操作都比前一次大
  • _version:版本号,表示该数据被修改了多少次
  • found:是否被查询到
  • _primary_term:当分片重新选举时,+ 1
  • _source:查询到的数据

替换

  • 所谓替换文档,就是将整个文档的内容全部替换成新内容
  • 替换操作不需要字段对应上,因为是完全替换的
  • 语法如下:
PUT /index/type/id

{
    "title":"PHP从入门到跑路"
}
  • 替换之后的结果如下:
  • 你会发现只有指定了值的字段还有值其他的都没值了

修改

  • 所谓修改文档,就是修改文档中的某个字段
  • 语法如下:
POST /index/type/id/_update

  • update 操作不能直接指定字段,而是需要在外面包一层 doc
{
    "doc":{
        "name":"PHP从入门到跑路2"
    }
}
  • 修改之后结果如下:

删除

  • 语法如下:
DELETE /index/type/1

  • 删除之后结果如下:

posted @ 2020-10-10 14:24  BNTang  阅读(144)  评论(0编辑  收藏  举报