ElasticSearch之CURL操作

转载 · 风清_云淡 · 2020-07-23 · 原文

查看es的状态

curl -k -XGET http://192.168.2.245:9200/_cluster/health?pretty

查看index

curl -k http://192.168.2.245:9200/_cat/indices?v

创建索引

curl -XPUT https://master:9200/bigdata_p

POST和PUT都可以用于创建,二者之间的区别:
PUT是幂等方法,POST不是。所以PUT用于更新,POST用于新增比较合适。

ES创建索引库和索引时的注意点:
1)索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号
2)如果没有明确指定索引数据ID,那么es会自动生成一个随机的ID,需要使用POST参数

curl -k -XPOST https://master:9200/bigdata_p/product/1 -d '{"author" : "Doug Cutting"}'

向库中新增数据

curl -k -XPOST https://master:9200/bigdata/product/ -d '{"name":"hadoop", "author": "Doug Cutting", "c_version": "2.7.3"}'

查询某一个索引库中的数据

curl -k -XGET https://master:9200/bigdata_p/_search?pretty

#在url后面加上一个pretty则会对返回结果进行格式化

查询某一个type:

curl -k -XGET https://master:9200/bigdata/product/_search?pretty

查询具体的某一条记录:

curl -k -XGET https://master:9200/bigdata/product/1?pretty

查询一条索引文档中的具体的字段:

curl -k -XGET https://master:9200/bigdata_p/product/1?_source=name&pretty

如果需要查询多个字段,使用逗号进行隔开,eg:

curl -k -XGET https://master:9200/bigdata/product/AWqHg_E7HpMjdaKC2sgv?_source=name,c_version&pretty

获取source所有数据:(可以通过source指定显示哪些字段,不指定就是显示全部字段)

curl -k -XGET https://master:9200/bigdata/product/AWqHg_E7HpMjdaKC2sgv?_source&pretty

根据条件进行查询:

curl -k -XGET https://master:9200/bigdata/product/_search?q=name:hadoop&pretty

ES更新
ES可以使用PUT或者POST对文档进行更新,如果指定ID的文档已经存在,则执行更新操作

注意:执行更新操作的时候,ES首先将旧的文档标记为删除状态,然后添加新的文档,旧的文档不会立即消失,但是你也无法访问,ES会继续添加更多数据的时候在后台清理已经标记为删除状态的文档。

curl -k -XPOST https://master:9200/bigdata/product/AWqHg_E7HpMjdaKC2sgv/_update -d '{"doc":{"c_version": "2.0.0", "publish_time": "2017-03-23"}}'

删除

普通删除,根据主键删除(删除type的一个文档)

curl -k -XDELETE https://maser:9200/bigdata/product/AWqHg_E7HpMjdaKC2sgv/

说明:如果文档存在,es属性found:true,successflu:1,_version属性的值 +1.

如果文档不存在,es属性found为false,但是版本值version依然会+1,这个就是内部。

注意:一个文档被删除之后,不会立即生效,他只是被标记为已删除。ES将会在你之后添加了更多索引的时候才会在后台进行删除。

删除index

curl -k -X DELETE 'https://master:9200/bigdata'