1.查询所有索引:
GET _cat/indices
2.根据id查询索引里指定数据(users为索引名,1为id的值):
GET users/_doc/1
3.查询索引里所有的数据(product为索引名)
GET product/_search
4.局部更新指定的数据(将product索引里id为1进行更新)
POST product/_update/1
{
"doc":{
"price":899
}
}
5.全量更新
PUT product/_doc/1003
{"title":"小米手机",
"category":"小米",
"price":"599",
"image":"https://mi.jpg"
}
6.删除指定的文档:
DELETE product/_doc/1002
7.按指定条件进行查询匹配:
GET shopping/_search
{"query":{
"match_phrase":{
"image":"https://xiaomi.jpg"
}
}
}
8.分页和排序,分页使用from表示起始记录数,size每页返回条数,排序,使用关键字sort,并指定排序字段,排序规则:
GET product/_search
{"query":{
"match_all":{
}},
"from":0,
"size":2,
"_source":["brand","price"],
"sort":{
"price":{
"order":"desc"
}
}
}
9.多条件and查询,使用关键字must:
GET shopping/_search
{
"query":{
"bool":{
"must":[
{"match":{
"category": "小米"
}},
{"match":{
"price": "599"
}}
]
}
}
}
10.多条件or查询,使用关键字should:
GET shopping/_search
{
"query":{
"bool":{
"should":[
{"match":{
"brandName": "小米"
}},
{"match":{
"brandName": "vivo"
}}
]
}
}
}
11.新增一条数据并指定id:
POST /user/_doc/1001
{"name":"xiaomi",
"sex":"F",
"tel":"131"
}
或
PUT shopping/_create/1006
{"title":"vivo手机",
"category":"vivo",
"price":"2958",
"image":"https://vivo.jpg"
}
12.分组统计:
GET phone/_search
{
"aggs":{
"price_group":{
"terms":{
"field":"price"
}
}
},
"size":0 //不显示原始数据
}
13.求平均数:
GET phone/_search
{
"aggs":{
"price_avg":{
"avg":{
"field":"price"
}
}
},
"size":0 //不显示原始数据
}
在ElasticSearch中POST 可以创建ES自动生成id类型的document,也可自己指定id。
PUT id存在为创建,否则为全量替换。
另外PUT还可以 使用op_type=create或_create实行强制创建document。
ElasticSearch文档中字段类型一旦创建,便不能修改,需要修改时可先创建一个新的索引,在索引写好好映射结构,然后将上一个索引的数据迁移过去。