ElasticSearch(基础操作)
- 设置索引分片
PUT /blogs
{
"settings" : {
//设置3个主分片
"number_of_shards" : 3,
//设置1个副分片
"number_of_replicas" : 1
}
}
一个分片保存所有数据的一部分 副分片是主分片的一个拷贝备份,同时用于搜索和返回文档 主分片在索引创建时指定,不能被修改,副分片可以被修改
- 使用自定义ID索引文档
PUT /{index}/{type}/{id}
{
"field": "value",
...
}
- 使用ElasticSearch生成ID索引文档
POST /{index}/{_type}/
{
"title": "My second blog entry",
"text": "Still trying this out...",
"date": "2014/01/01"
}
将请求修改为POST,URL不指定ID,Es会为文档自动生成ID
- 获取一个文档
GET /{index}/{_type}/{id}
- 获取文档的部分字段
GET /{index}/{_type}/{id}?_source={filed},{filed}
- 获取文档source
GET /{index}/{_type}/{id}/_source
- 检测文档是否存在
XHEAD /{index}/{_type}/{id}
文档如果存在,Es会返回200 ok的响应码
如果不存在,会返回404
- 更新整个文档
PUT /{index}/{_type}/{id}
{
"title": "My first blog entry",
"text": "I am starting to get the hang of this...",
"date": "2014/01/02"
}
Es中所有文档都是不可修改的,当我们进行更新的时候,Es内部会将文档进行删除,将新的文档覆盖到旧文档的位置,并且更新_version版本号
流程为
1.从旧文档构建 JSON
2.更改该 JSON
3.删除旧文档
4.索引一个新文档
- 使用指定ID创建一个新的文档两种方式
PUT /{index}/{_type}/{id}?op_type=create
{ ... }
PUT /{index}/{_type}/{id}/_create
{ ... }
两个方式效果一样,如果文档不存在,Es成功索引了文档,会返回元数据和一个 201 Created 的 HTTP 响应码。
如果具有相同的 _index 、 _type 和 _id 的文档已经存在,Elasticsearch 将会返回 409 Conflict 响应码
- 删除文档
DELETE /{index}/{_type}/{id}
如果文档存在,Es会返回一个 200 的 HTTP 响应码。
不存在,Es会返回一个 404 的 HTTP 响应码。
删除文档不会立即将文档从磁盘中删除,只是将文档标记为已删除状态。随着你不断的索引更多的数据,Elasticsearch 将会在后台清理标记为已删除的文档。
- 轻量搜索
GET /{index}/{_type}/_search?q=filed:value
如果文档存在,Es会返回一个 200 的 HTTP 响应码。
不存在,Es会返回一个 404 的 HTTP 响应码。