在上一篇博客已经介绍了ElasticSearch相关开发环境的搭建,接下来着手做该环境下索引数据的简单的增删改查操作.
1.结构化创建索引(创建一个名称为school的结构化索引,数据类型定义好的)
PUT school
{
"settings":{
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings":{
"student":{
"properties":{
"name":{
"type":"text"
},
"address":{
"type":"keyword"
},
"age":{
"type":"integer"
},
"date":{
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss|| yyy-MM-dd||epoch_millis"
}
}
}
}
}
2.指定ID插入数据(相当于插入一条记录到一个数据库表中)
PUT /school/student/1
{
"name":"杨旭",
"address":"山东烟台",
"age":22,
"date":"1995-04-12"
}
3.系统指定ID的插入方式
POST /school/student/
{
"name":"张小花",
"address":"山东烟台",
"age":24,
"date":"1996-07-24"
}
4.索引的查询语句(简单的查询)
4.1 获取某个索引的某个类型的某个id的数据(以下两种方式均可)
GET /school/student/1
GET /school/student/1?_source
4.2 查询指定ID的某些字段
这个语句相当于SELECT ADDRESS FROM STUDENT WHERE ID = 1
GET /school/student/1?_source=address
这个语句相当于SELECT NAME,ADDRESS FROM STUDENT WHERE ID = 1
GET /school/student/1?_source=name,address
4.3 查询当前索引school的所有数据
GET /school/_search
{
"query": {
"match_all": {
}
}
}
4.4 设置查询返回的索引数据数量
GET /school/_search
{
"query": {
"match_all": {
}
},
"from": 1,
"size": 1
}
4.5 按照字段内容name模糊查询相关数据
GET /school/_search
{
"query": {
"match": {
"name": "海"
}
}
}
4.6 查询内容排序(按照时间倒序排列)
GET /school/_search
{
"query": {
"match": {
"name": "海"
}
},
"sort": [
{
"date": {
"order": "desc"
}
}
]
}
5.索引的更新操作(相当于SQL的修改操作)
5.1 覆盖式修改索引文档
该句相当于SQL的UPDATE STUDENT SET NAME = ?,ADDRESS = ?,AGE = ?,DATE = ? WHERE ID = 1
PUT /school/student/1
{
"name":"杨旭",
"address":"山东济宁",
"age":25,
"date":"1995-04-12"
}
5.2 修改索引文档的某些字段
该句相当于SQL的UPDATE STUDENT SET AGE = 20 WHERE ID =1
POST /school/student/1/_update
{
"doc":{
"age":20
}
}
6.索引的删除操作
删除操作分为3种:
6.1 删除整个index(库)
DELETE school
6.2 删除一个type(表)
DELETE school/student
尝试了一下,结果不行,说明ES5以后不再支持删除type.
6.3 删除一条记录
DELETE /school/student/1/