查询各个节点状态
API:GET /_cat/nodes?v
查询各个索引状态
GET /_cat/indices?v
创建索引
API:PUT 索引名?pretty
PUT movie_index?pretty
查询某个索引的分片情况
GET/_cat/shards/movie_index
删除索引
API:DELETE /索引名
DELETE /movie_index
现在向索引movie_index中放入文档,文档ID分别为1,2,3
PUT /movie_index/movie/1
{ "id":100,
"name":"operation red sea",
"doubanScore":8.5,
"actorList":[ {"id":1,"name":"zhang yi"},
{"id":2,"name":"hai qing"},
{"id":3,"name":"zhang han yu"}]}
PUT /movie_index/movie/2
{ "id":200,
"name":"operation meigong river",
"doubanScore":8.0,
"actorList":[ {"id":3,"name":"zhang han yu"}]}
PUT /movie_index/movie/3
{ "id":300,
"name":"incident red sea",
"doubanScore":5.0,
"actorList":[ {"id":4,"name":"zhang san feng"}]}
根据文档id查看文档
API:GET /索引名/类型名/文档id
GET /movie_index/movie/1?pretty
查询所有文档
API:GET /索引名/_searchKinana中默认显示10条,
可以通过size控制
GET /movie_index/_search
{
"size":10
}
根据文档id删除文档
API:DELETE /索引名/类型名/文档id
DELETE /movie_index/movie/3
注意:删除索引和删除文档的区别?
➢删除索引是会立即释放空间的,不存在所谓的“标记”逻辑。
➢删除文档的时候,是将新文档写入,同时将旧文档标记为已删除。
磁盘空间是否释放取决于新旧文档是否在同一个segment file里面,
因此ES后台的segment merge在合并segment file的过程中有可能触发旧文档的物理删除。
➢也可以手动执行POST /_forcemerge进行合并触发
替换文档
PUT(幂等性操作)
当我们通过执行PUT /索引名/类型名/文档id命令的添加时候,
如果文档id已经存在,那么再次执行上面的命令,ElasticSearch将替换现有文档。
POST(非幂等性操作)
创建文档时,ID部分是可选的。如果没有指定,Elasticsearch将生成一个随机ID,然后使用它来引用文档。
根据文档id更新文档
除了创建和替换文档外,ES还可以更新文档中的某一个字段内容。
注意,Elasticsearch实际上并没有在底层执行就地更新,而是先删除旧文档,再添加新文档。
API:
POST /索引名/类型名/文档id/_update?pretty
{
"doc": { "字段名": "新的字段值" } doc固定写法
}
需求:把文档ID为3中的name字段更改为“wudang”:
POST /movie_index/movie/3/_update?pretty
{
"doc": {"name":"wudang"}
}