版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013219624/article/details/84666712
1.索引操作
# 创建名为data索引 0备份 3分片
PUT data
{
"settings": {
"index": {
"number_of_replicas": 0,
"number_of_shards": 3
}
}
}
# 查询data索引配置
GET data/_settings
# 获取所有索引配置
GET _all/_settings
# 删除data索引
DELETE data
2.单文档增删改查操作
# 添加id为1的文档
PUT data/user/1
{
"name": "tom",
"age": 15,
"hobby": ["fb", "google"]
}
# 添加文档不指定ID
POST data/user
{
"name": "Jack",
"age": 25,
"hobby": ["百度", "google"]
}
# 查询ID为1的文档
GET data/user/1
# 查询ID为1的文档 指定列
GET data/user/1?_source=name,age
# 替换文档
PUT data/user/1
{
"name": "Jack_new",
"age": 35,
"hobby": ["百度", "googl_new"]
}
# 指定修改字段
POST data/user/1/_update
{
"doc": {
"age": 100
}
}
#删除文档
DELETE data/user/1
3.Muti Get批量查询文档
GET data/user/_mget
{
"docs": [
{
"_id": 2,
"_source": ["age"]
},
{
"_id": 2
},
{
"_id": 3
}
]
}
GET data/user/_mget
{
"ids": [1, 2, 3, 4]
}
4.Bulk API批量增删改
格式
{action: {metadata}}
{requestBody}
action
create: 文档已存在会报错
index:文档替换
update: 更新
delete:删除
metadata
_index
_type
_id
# 批量添加
POST res/book/_bulk
{"index":{"_id":1}}
{"title":"java","price":10}
{"index":{"_id":2}}
{"title":"C++","price":20}
{"index":{"_id":3}}
{"title":"PHP","price":5}
{"index":{"_id":4}}
{"title":"Python","price":40}
# 批量操作
POST res/book/_bulk
{"delete":{"_id":1}}
{"create":{"_id":5}}
{"title":"js","price":100}
{"update":{"_id":2}}
{"doc": {"price": 1000}}
注意:Bulk API加载到内存中执行,建议文档数1000~5000,大小不要超过100M
5.版本控制(乐观锁机制)
# 内部版本控制 (version和es中的值相等及可更新)
PUT data/user/1?version=2
{
"name": "version",
"age": 15,
"hobby": ["fb", "google"]
}
# 外部版本控制 (version比es中的值大即可更新)
PUT data/user/1?version=10&version_type=external
{
"name": "version",
"age": 15,
"hobby": ["fb", "google"]
}
6.常用数据类型
字符型:text keyword (keyword不会分词)
数字类型:long integer short byte double float
日期类型:date
布尔类型:boolean
二进制型:binary
数组
对象类型
地理位置类型
IPv4类型
7.mapping
PUT custom
{
"settings": {
"number_of_replicas": 0,
"number_of_shards": 1
},
"mappings": {
"person": {
"properties": {
"title":{"type": "text"},
"name":{"type": "text", "analyzer": "standard"},
"birtyday":{"type": "date", "index": false},
"money":{"type": "double"},
"age":{"type": "integer"}
}
}
}
}
GET custom/person/_mapping