以下是使用kibana操作
创建user索引
PUT user_index
{
"settings": {
"analysis": {
"analyzer": {
"user_analyzer": {
"tokenizer": "user_tokenizer"
}
},
"tokenizer": {
"user_tokenizer": {
"type": "ngram",
"min_gram": 1,
"max_gram": 2,
"token_chars": [
"letter",
"digit",
"whitespace",
"punctuation",
"symbol"
]
}
}
}
},
"mappings": {
"user": {
"properties": {
"userId": {
"type": "text",
"store": true,
"index": true
},
"avatar": {
"type": "text",
"store": true,
"index": true
},
"nickname": {
"type": "text",
"store": true,
"index": true,
"analyzer": "user_analyzer",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"location": {
"type": "geo_point",
"store": true,
"index": true
},
"age": {
"type": "integer",
"store": true,
"index": true
},
"updateTime": {
"type": "long",
"store": true,
"index": true
},
"status": {
"type": "integer",
"store": true,
"index": true
}
}
}
}
}
删除user索引
DELETE user_index
删除索引中数据
POST /user_index/_delete_by_query
{
"query": {
"match_all": {}
}
}
全部新增(覆盖式)数据
PUT /user_index/_doc/Iy3Vf654096819260751873
{
"nickname": "测试新增/更新昵称",
"age":24
}
单条-局部更新数据
POST /user_index/_update/Iy3Vf654096819260751873
{
"doc": {
"nickname": "测试局部更新昵称"
}
}
批量-局部更新数据
#批量更新年龄是27岁的用户状态为1,存在更新,不存在则新增
POST /user_index/_update_by_query
{
"query":{
"match":{
"age":27
}
},
"script": {
"source":"ctx._source['status']=1"
}
}
查询某字段为空的数据集
GET /user_index/_search
{
"query":{
"bool": {
"must_not": [
{
"exists": {
"field": "flag"
}
}
]
}
}
}
查询出来flag为空的用户,并批量更新flag为1
POST /user_index/_update_by_query
{
"query":{
"bool": {
"must_not": [
{
"exists": {
"field": "flag"
}
}
]
}
},
"script": {
"source":"ctx._source['flag']=1"
}
}