ElasticSearch之CURL操作
1、测试es是否启动成功(pretty参数是为了让查询结果更方便阅读)
curl 'http://localhost:9200/?pretty'
2.查询集群健康状态
curl -X GET "localhost:9200/_cluster/health"
3.创建索引blogs并指定主分片(默认为5个)和副分片(默认为1个)的个数(3个主分片,每个主分片有1份备份,一共6个分片,最大扩容到6个节点,每个分片获取节点的所有资源)
curl -X PUT "localhost:9200/blogs" -H 'Content-Type: application/json' -d'
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}
}
'
创建索引库
curl -XPUT http://master:9200/bigdata_p
这样就在es中创建了一个索引库bigdata_p
POST和PUT都可以用于创建,二者之间的区别:
PUT是幂等方法,POST不是。所以PUT用户更新,POST用于新增比较合适。
ES创建索引库和索引时的注意点
1)索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号
2)如果没有明确指定索引数据的ID,那么es会自动生成一个随机的ID,需要使用POST参数
curl -XPOST http://localhost:9200/bigdata/product/ -d ‘{“author” : “Doug Cutting”}’
往索引库中新增数据
在具体的type里面,添加相关的document
curl -XPUT http://master:9200/bigdata_p/product/ -d ‘{“name”:“hadoop”, “author”: “Doug Cutting”, “c_version”: “2.7.3”}’
全部更新和局部更新
ES可以使用PUT或者POST对文档进行更新(全部更新),如果指定ID的文档已经存在,则执行更新操作。
比如,我这里,id=1文档存在,那么,就是es全部更新。
注意:
es执行更新操作的时候,ES首先将旧的文档标记为删除状态,然后添加新的文档,旧的文档不会立即消失,但是你也无法访问,
ES会在你继续添加更多数据的时候在后台清理已经标记为删除状态的文档。
局部更新,可以添加新字段或者更新已有字段(必须使用POST)
curl -XPOST 'http://192.168.80.200:9200/zhouls/emp/1/_update' -d '{"doc":{"name":"mack"}}'