前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系

正文

curl

curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。

简单的认为是可以在命令行下面访问url的一个工具。

在centos的默认库里面是有curl工具的,如果没有请yum安装即可。

curl
-X 指定http的请求方法 有HEAD GET POST PUT DELETE
-d 指定要传输的数据
-H 指定http请求头信息

1、创建索引

在我们的kibana的dev tools当中执行以下语句

curl -XPUT http://node01:9200/blog01/?pretty

2、插入文档

前面的命令使用 PUT 动词将一个文档添加到 /article(文档类型),并为该文档分配 ID 为1。URL 路径显示为index/doctype/ID(索引/文档类型/ID)。

curl -XPUT http://node01:9200/blog01/article/1?pretty -d  '{"id": "1", "title": "What is lucene"}'

问题

Content-Type header [application/x-www-form-urlencoded] is not supported

解决

curl -XPUT http://node01:9200/blog01/article/1?pretty -d  '{"id": "1", "title": "What is lucene"}' -H "Content-Type: application/json"

原因

此原因时由于ES增加了安全机制, 进行严格的内容类型检查,严格检查内容类型也可以作为防止跨站点请求伪造攻击的一层保护。

官网解释 http.content_type.required

3、查询文档

curl -XGET http://node01:9200/blog01/article/1?pretty

问题

Content-Type header [application/x-www-form-urlencoded] is not supported

解决

curl -XPUT http://node01:9200/blog01/article/1?pretty -d  '{"id": "1", "title": "What is lucene"}' -H "Content-Type: application/json"
curl -XGET http://node01:9200/blog01/article/1?pretty -H "Content-Type: application/json"

4、更新文档

curl -XPUT http://node01:9200/blog01/article/1?pretty -d  '{"id": "1", "title": " What is elasticsearch"}'

问题

Content-Type header [application/x-www-form-urlencoded] is not supported

解决

curl -XPUT http://node01:9200/blog01/article/1?pretty -d  '{"id": "1", "title": " What is elasticsearch"}' -H "Content-Type: application/json"

5、搜索文档

curl -XGET "http://node01:9200/blog01/article/_search?q=title:elasticsearch" 

问题

Content-Type header [application/x-www-form-urlencoded] is not supported

解决

curl -XGET "http://node01:9200/blog01/article/_search?q=title:'elasticsearch'&pretty" -H "Content-Type: application/json"

6、删除文档

curl -XDELETE "http://node01:9200/blog01/article/1?pretty"

7、删除索引

curl -XDELETE http://node01:9200/blog01?pretty
上一篇 下一篇