8.ES数据管理
8.1 ES数据管理概述
ES是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在ES中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。 ES使用JSON作为文档序列化格式。JSON现在已经被大多语言所支持,而且已经成为NoSQL领域的标准格式。 ES存储的一个员工文档的格式示例:
代码语言:javascript复制{
"email": "584614151@qq.com",
"name": "张三",
"age": 30,
"interests": [ "篮球", "健身" ]
}
8.2 基本操作
1) 创建索引
格式: PUT /索引名称 举例: PUT /es_db
2) 查询索引
格式: GET /索引名称 举例: GET /es_db
3) 删除索引
格式: DELETE /索引名称 举例: DELETE /es_db
4) 添加文档
格式: PUT /索引名称/类型/id 举例:
代码语言:javascript复制PUT /es_db/_doc/1
{
"name": "张三",
"sex": 1,
"age": 25,
"address": "上海徐汇",
"remark": "java developer"
}
PUT /es_db/_doc/2
{
"name": "李四",
"sex": 1,
"age": 28,
"address": "上海黄浦",
"remark": "java assistant"
}
PUT /es_db/_doc/3
{
"name": "rod",
"sex": 0,
"age": 26,
"address": "上海浦东",
"remark": "php developer"
}
PUT /es_db/_doc/4
{
"name": "admin",
"sex": 0,
"age": 22,
"address": "陆家嘴",
"remark": "python assistant"
}
PUT /es_db/_doc/5
{
"name": "小明",
"sex": 0,
"age": 19,
"address": "东方明珠",
"remark": "java architect assistant"
}
5) 修改文档
格式: PUT /索引名称/类型/id 举例:
代码语言:javascript复制PUT /es_db/_doc/1
{
"name": "你廖哥",
"sex": 1,
"age": 25,
"address": "上海",
"remark": "php developer assistant"
}
注意:POST和PUT都能起到创建/更新的作用 1、需要注意的是==PUT==需要对一个具体的资源进行操作也就是要确定id才能进行==更新/创建,而==POST==是可以针对整个资源集合进行操作的,如果不写id就由ES生成一个唯一id进行==创建==新文档,如果填了id那就针对这个id的文档进行创建/更新 2、PUT只会将json数据都进行替换,POST只会更新相同字段的值。 3、PUT与DELETE都是幂等性操作,即不论操作多少次, 结果都一样。
6) 查询文档
格式: GET /索引名称/类型/id 举例: GET /es_db/_doc/1
7) 删除文档
格式: DELETE /索引名称/类型/id 举例: DELETE /es_db/_doc/1
9.Restful认识
Restful是一种面向资源的架构风格,可以简单理解为:使用URL定位资源,用HTTP动词(GET,POST,DELETE,PUT)描述操作。 基于Restful API ES和所有客户端的交互都是使用JSON格式的数据,其他所有程序语言都可以使用RESTful API,通过9200端口的与ES进行通信
用户做crud
代码语言:javascript复制Get http://localhost:8080/employee/1
Get http://localhost:8080/employees
put http://localhost:8080/employee
{
}
delete http://localhost:8080/employee/1
Post http://localhost:8080/employee/1
{
}
使用Restful的好处:透明性,暴露资源存在。充分利用 HTTP 协议本身语义,不同请求方式进行不同的操作