ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】

先来了解什么是ElasticSearch中的文档??

       ES是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在ES中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。

       ES使用Javascript对象符号(JavaScript Object Notation),也就是JSON,作为文档序列化格式。JSON现在已经被大多语言所支持,而且已经成为NoSQL领域的标准格式。

       ES存储的一个用户文档的格式示例:

{
	"id":1,
	"name":"zq",
	"birthday":"1997-01-01",
	"hobby":["音乐","运动"],
	"info":[
		{
			"id":1,
			"name":"z"
		},
		{
			"id":2,
			"name":"q"
		}
	]
}

在ES中将对象转化为JSON并做索引要比在表结构中做相同的事情简单的多~ 

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第1张图片

 

CRUD:

温馨小提示:全部命令集合放在文章最后了哦~ 下面是演示效果

1.添加 - ①指定文档id

PUT test/user/1
{
  "id":1,
  "name":"郑清",
  "age":18
}

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第2张图片

②不指定id会默认生成一个【ES内置ID创建】AWgdjWwHtBOnz6xlJ0ha

POST test/user
{
  "id":2,
  "name":"郑清2",
  "age":20
}

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第3张图片

2.获取 - ①指定ID的文档

GET test/user/1

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第4张图片

②获取指定ID文档的部分字段

GET test/user/1?_source=name

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第5张图片

③只返回文档内容,不要元数据

GET test/user/1/_source

3.删除

DELETE test/user/1

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第6张图片

4.修改 - ①更新整个文档(即先删除后再添加)

PUT test/user/1
{
  "id":1,
  "name":"郑清"
}

注意:在响应中,我们可以看到Elasticsearch把 _version  增加了...

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第7张图片

②局部更新 - 覆盖

POST test/user/1/_update
{
  "doc":
  {
    "id":1,
    "name":"名字被修改了..."
  }
}

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第8张图片

5.查询 - ①查询1个

GET test/user/1

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第9张图片

②查询所有

GET test/user/_search

GET _search             -->            没有指定任何的查询条件,只返回集群索引中的所有文档 

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第10张图片

③批量查询

GET test/user/_mget
{
  "ids":["1","3"]
}

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第11张图片

④高级查询 - 查询age为10~18的文档

GET test/user/_search?q=age:[10 TO 18]

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第12张图片

⑤高级查询+排序【asc:升序  desc:降序】

GET test/user/_search?q=age:[10 TO 20]&sort=age:asc

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第13张图片

⑥高级查询+排序+分页 【from:从第几页开始  size:每页数据条数】

GET test/user/_search?q=age:[10 TO 20]&sort=age:asc&from=0&size=1

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第14张图片

⑦高级查询+排序+分页+截取字段 【_source:截取name和age字段】

GET test/user/_search?q=age:[10 TO 20]&sort=age:asc&from=0&size=2&_source=name,age

相当于sql: select name,age from t_user where name like %zq% orderby id desc limit 0,10 

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第15张图片


ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第16张图片

ElasticSearch(2) Kibana客户端常用命令操作curd【RestApi模式】_第17张图片


最后附上全部命令:

# 添加 - ①指定文档id
PUT test/user/1
{
  "id":1,
  "name":"郑清",
  "age":18
}
# 添加 - ②不指定id会默认生成一个【ES内置ID创建】AWgdjWwHtBOnz6xlJ0ha
POST test/user
{
  "id":2,
  "name":"郑清2",
  "age":20
}

# 获取 - ①指定ID的文档
GET test/user/1
# 获取 - ②指定ID文档的部分字段
GET test/user/1?_source=name
# 获取 - ③只返回文档内容,不要元数据
GET test/user/1/_source

# 删除 - 指定文档【ID 或 ES内置创建的ID->AWgdjWwHtBOnz6xlJ0ha】
DELETE test/user/1

# 修改 - ①更新整个文档(即先删除再添加)
PUT test/user/1
{
  "id":1,
  "name":"郑清"
}
# 修改 - ②局部更新->覆盖
POST test/user/1/_update
{
  "doc":
  {
    "id":1,
    "name":"名字被修改了..."
  }
}

查询字符串:
# ①查询1个
GET test/user/1
# ②查询所有
GET test/user/_search
#  没有指定任何的查询条件,只返回集群索引中的所有文档 
GET _search 
# ③批量查询
GET test/user/_mget
{
  "ids":["1","3"]
}
# ④高级查询 - 查询age为10~18的文档
GET test/user/_search?q=age:[10 TO 18]
# ⑤高级查询+排序【asc:升序  desc:降序】
GET test/user/_search?q=age:[10 TO 20]&sort=age:asc
# ⑥高级查询+排序+分页 【from:从第几页开始  size:每页数据条数】
GET test/user/_search?q=age:[10 TO 20]&sort=age:asc&from=0&size=1
# ⑦高级查询+排序+分页+截取字段 【_source:截取name和age字段】
GET test/user/_search?q=age:[10 TO 20]&sort=age:asc&from=0&size=2&_source=name,age
 
【相当于sql: select name,age from t_user where name like %zq% orderby id desc limit 0,10 】 
 

你可能感兴趣的:(-----,-----⑪,全文检索)