在上一篇博客已经介绍了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_source4.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/