RESTFul API
API基本格式 http://ip:port/索引/类型/文档ID
常用http动词, GET PUT POST DELETE
创建索引
非结构化创建
通过Elasticsearch-head创建索引
也可以通过postman工具发送put请求,创建索引,127.0.0.1:9200/javahikers
后面都将使用这种方式来操作
结构化创建
通过postman发送put请求,127.0.0.1:9200/people
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"man": {
"properties": {
"name": {
"type": "text"
},
"country": {
"type": "keyword"
},
"age": {
"type": "integer"
},
"date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
},
"woman": {
}
}
}
插入文档
指定文档ID插入
通过postman发送put或post请求,127.0.0.1:9200/people/man/1
{
"name": "javahikers",
"country": "China",
"age": 30,
"date": "1988-02-03"
}
自动产生文档ID插入
通过postman发送post请求,127.0.0.1:9200/people/man。put请求无法自动产生文档ID。
{
"name": "javahikers",
"country": "China",
"age": 40,
"date": "1988-02-03"
}
对比指定文档ID插入和自动产生文档ID插入的结果
修改文档
直接修改文档
post请求127.0.0.1:9200/people/man/1/_update
{
"doc": {
"age": 30
}
}
脚本修改文档
post请求127.0.0.1:9200/people/man/1/_update
{
"script": {
"lang": "painless",
"inline": "ctx._source.age += 10"
}
}
将参数放在外面, post请求127.0.0.1:9200/people/man/1/_update
{
"script": {
"lang": "painless",
"inline": "ctx._source.age = params.age",
"params": {
"age": 100
}
}
}
删除操作
删除索引
delete请求127.0.0.1:9200/people
删除文档
delete请求127.0.0.1:9200/people/man/1
总结
场景 | 请求类型 |
---|---|
创建索引 | put |
指定文档ID插入 | put/post |
自动产生文档ID插入 | post |
直接修改文档 | post |
脚本修改文档 | post |
删除索引 | delete |
删除文档 | delete |