ES的RESTful API 一些常用操作

基本概念

Elasticsearch 是 面向文档型数据库,这意味着它存储的是整个对象或者 文档,它不但会存储它们,还会为他们建立索引,这样你就可以搜索他们了。你可以在 Elasticsearch 中索引、搜索、排序和过滤这些文档。不需要成行成列的数据。这将会是完全不同的一种面对数据的思考方式,这也是为什么 Elasticsearch 可以执行复杂的全文搜索的原因。

通过 HTTP 向 RESTful API 传送 json

  1. 相应的 HTTP 请求方法 或者 变量 : GET, POST, PUT, HEAD 或者 DELETE。
  2. 集群中任意一个节点的访问协议、主机名以及端口。
  3. 请求的路径。
  4. 任意一个查询后再加上 ?pretty 就可以生成 更加美观 的JSON反馈,以增强可读性。
  5. 一个 JSON 编码的请求主体(如果需要的话)。

在 Elasticsearch 中,文档属于一种 类型(type),各种各样的类型存在于一个 索引 中。你也可以通过类比传统的关系数据库得到一些大致的相似之处:

  1. 关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
  2. Elasticsearch ⇒ 索引 ⇒ 类型 ⇒ 文档 ⇒ 字段(Fields)

可以在curl后加-i参数得到响应头

curl -i -XGET http://localhost:9200/website/blog/124?pretty

使用postman进行的一些简单操作,kibana会有些差异,但不大

1.查看集群健康状况
GET /_cat/health?v&pretty

2.查看my_index的mapping和setting的相关信息
GET /my_index?pretty

3.查看所有的index
GET /_cat/indices?v&pretty
创建只有一个主分片,没有复制分片的小索引。

PUT /my_temp_index
{
  "settings": {
  "number_of_shards" : 1,
  "number_of_replicas" : 0
  }
}

用 update-index-settings API 动态修改复制分片个数:

PUT /my_temp_index/_settings
{
  "number_of_replicas": 1
}
删除索引

DELETE /my_index
删除多个索引
DELETE /index_one,index_two
DELETE /index_*
删除多个索引
DELETE /_all

只得到_source字段而不要其他的元数据,你可以这样请求

GET /website/blog/123/_source

//创建索引用put  ip:9200/person
{
	"settings":{
		"number_of_shards":3,
		"number_of_replicas":1
	},
	"mappings":{
		"man":{
			"properties":{
				"name":{
					"type":"text"
				},
				"age":{
					"type":"integer"
				}
			}
		}
	}
}
//手动id添加文档put(其实走的是修改)    ip:9200/person/man/1
{
	"name":"111",
	"age":11
}

//自动id添加文档post    ip:9200/person/man
{
	"name":"111",
	"age":11
}

//doc修改post  ip:9200/person/man/1/_update
{
	"doc":{
		"name":"大大阿达"
	}
}

//脚本修改post  ip:9200/person/man/1/_update
{
	"script":"painless",
	"inline":"ctx._source.name = 'zzzzz'",
	"inlines":"ctx._dource.nname = params.name",
	"parames":{
		"name":"newName"
	}
}

//删除文档delete  ip:9200/person/man/1
//删除索引delete  ip:9200/person(无法删除类型)


//根据id查询文档get  ip:9200/person/man/1

//根据条件查询分页 排序post ip:9200/person/man/_search
{
	"query":{
		"match":{
			"name":"zzz"
		},
		"from":1,
		"size":5,
		"sort":[
				"age":{
					"order":"desc"
				}
			]
	}
}

//查询全部  post ip:9200/person/man/_search
{
	"query":{
		"match_all":{}
	}
}

//分组查询post  ip:9200/person/man/_search
{
	"aggs":{
		"group_by_age":{
			"terms":{
				"field":"age"
			}
		}
	}
}

//聚合 多行函数(也可单个max,min) post ip:9200/person/man/_search
{
	"aggs":{
		"many_function":{
			"stats":{
				"field":"age"
			}
		}
	}
}

 以上是对es的一些梳理,

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Elasticsearch 是一个流行的开源分布式搜索和分析引擎,它提供了丰富的 API 和功能来处理大规模数据的搜索、聚合、过滤和分析。以下是一些常用Elasticsearch 工具类: 1. Elasticsearch Java APIElasticsearch 提供了一个丰富的 Java API,可以使用它来与 Elasticsearch 集群进行交互。你可以使用它来索引、搜索、聚合和管理 Elasticsearch 中的数据。 2. Elasticsearch REST APIElasticsearch 也提供了一组 RESTful API,可以使用 HTTP 请求与 Elasticsearch 进行通信。这些 API 使用 JSON 格式进行数据交换,允许你通过简单的 HTTP 请求执行各种操作。 3. Elasticsearch Hadoop:这是一个用于将 Elasticsearch 与 Hadoop 生态系统集成的工具类。它提供了 Hadoop MapReduce、Spark、Hive 和 Pig 等组件的支持,使你能够在大规模数据处理环境中使用 Elasticsearch。 4. Elasticsearch Curator:这是一个用于管理和维护 Elasticsearch 索引的工具类。它提供了一组易于使用的命令行工具和库,可以帮助你执行索引的备份、删除、优化和快照等操作。 5. Elasticsearch Head:这是一个基于浏览器的插件,用于可视化和管理 Elasticsearch 集群。它提供了一个直观的界面,可以显示集群状态、索引信息、节点信息等,并允许你执行一些管理操作。 6. Elasticsearch Marvel:这是一个监控和管理 Elasticsearch 集群的工具类。它提供了实时的集群性能指标、节点状态和索引统计信息等,帮助你监控集群的健康状态和性能。 以上是一些常用Elasticsearch 工具类,它们可以帮助你更方便地使用和管理 Elasticsearch 集群。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值