Elasticsearch 怎么管理索引?

Posted Shockang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch 怎么管理索引?相关的知识,希望对你有一定的参考价值。

前言

本文隶属于专栏《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

以上是关于Elasticsearch 怎么管理索引?的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch笔记九之优化

Elasticsearch 怎么管理索引?

[ElasticSearch]Java API 之 索引管理

是否可以对 ElasticSearch 索引进行分区?

ElasticSearch——索引生命周期管理

ElasticSearch 的索引管理