ES采用json形式RESTFUL API接受数据并响应,操作起来极为简单,只需要使用postman即可,今天小编就来说说关于elasticsearch使用流程?下面更多详细答案一起来看看吧!

elasticsearch使用流程(ElasticSearch入门到实战系列)

elasticsearch使用流程

ES采用json形式RESTFUL API接受数据并响应,操作起来极为简单,只需要使用postman即可。

3.1 查看集群的健康情况

GET /_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 1599841683 16:28:03 my-application green 1 1 0 0 0 0 0 0 - 100.0%

cluster ,集群名称

status,集群状态 green代表健康;yellow代表分配了所有主分片,但至少缺少一个副本,此时集群数据仍旧完整;red代表部分主分片不可用,可能已经丢失数据。

node.total,代表在线的节点总数量

node.data,代表在线的数据节点的数量

shards, active_shards 存活的分片数量

pri,active_primary_shards 存活的主分片数量 正常情况下 shards的数量是pri的两倍。

relo, relocating_shards 迁移中的分片数量,正常情况为 0

init, initializing_shards 初始化中的分片数量 正常情况为 0

unassign, unassigned_shards 未分配的分片 正常情况为 0

pending_tasks,准备中的任务,任务指迁移分片等 正常情况为 0

max_task_wait_time,任务最长等待时间

active_shards_percent,正常分片百分比 正常情况为 100%

3.2 索引操作3.2.1 查看集群中的索引

GET /_cat/indices?v

health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open my_index LiwgtxiRRH68FyNW9GLe7A 1 1 0 0 230b 230b

3.2.2 创建索引

PUT /索引名称?pretty

这里pretty的作用是格式化返回的json串

{ "acknowledged": true, "shards_acknowledged": true, "index": "my_index" }

3.2.3 删除索引

DELETE /索引名称?pretty

{ "acknowledged": true }

3.3 帖子案例(CRUD)3.3.1 创建帖子索引

PUT /article

{ "acknowledged": true, "shards_acknowledged": true, "index": "article" }

3.3.2 创建文档(新增帖子)

语法

PUT /index/type/id

下面创建3条帖子

article/_doc/3

第一条

{ "title": "Java从入门到精通", "red": 101, "content": "Java是一门面向对象编程语言,不仅吸收了C 语言的各种优点,还摒弃了C 里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程" }

第二条

{ "title": "JavaEE从入门到入土", "red": 50, "content": "Java EE 是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用。在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本" }

第三条

{ "title": "PHP从入门到精通", "red": 50, "content": "众所周知,PHP是世界上最好的语言" }

3.3.3 检索文档(查询帖子)

语法

GET /index/type/id

字段含义

{ "_index": "article", "_type": "_doc", "_id": "1", "_version": 1, "_seq_no": 0, "_primary_term": 1, "found": true, "_source": { "title": "Java从入门到精通", "red": 101, "content": "Java是一门面向对象编程语言,不仅吸收了C 语言的各种优点,还摒弃了C 里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程" } }

  • _index:该文档属于哪个索引

  • _type:相当于表。ES一直在弱化type,现在的type实际上都是_doc。ES9之后将彻底删除type

  • _id:文档的唯一标识,相当于主键。可以手动生成,也可以自动

  • _seq_no:递增的序列号,保证每次操作都比前一次大

  • _version:版本号,表示该数据被修改了多少次

  • found:是否查询到

  • _primary_term:当分片重新选举时, 1

  • _source:查询的数据

    3.3.4 替换文档(修改帖子)

    所谓替换文档,就是将整个文档的内容全部替换成新内容。替换操作不需要字段对应上,因为是完全替换的

    语法

    PUT /index/type/id

    { "title": "PHP从入门到跑路" }

    3.3.5 修改文档(修改帖子)

    所谓修改文档,就是修改文档中的某个字段。

    语法

    POST /index/type/id/_update

    update操作不能直接指定字段,而是需要在外面包一层 doc

    { "doc" : {"name":"PHP从入门到跑路2"} }

    3.3.6 删除文档(删除帖子)

    语法

    DELETE /index/type/1

    article/_doc/4