在知道ES的存储之后,我们需要了解如何对ES中的数据进行操作
一:ES的安装:
Elastic 需要 Java 8 环境。如果你的机器还没安装 Java,可以参考这篇文章,注意要保证环境变量JAVA_HOME
正确设置。
安装完 Java,就可以跟着官方文档安装 Elastic。直接下载压缩包比较简单。
Elastic 需要 Java 8 环境。如果你的机器还没安装 Java,可以参考这篇文章,注意要保证环境变量JAVA_HOME
正确设置。
安装完 Java,就可以跟着官方文档安装 Elastic。直接下载压缩包比较简单。
% wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
% unzip elasticsearch-5.5.1.zip
% cd elasticsearch-5.5.1/
接着,进入解压后的目录,运行下面的命令,启动 Elastic。
./bin/elasticsearch
如果一切正常,Elastic 就会在默认的9200端口运行。这时,打开另一个命令行窗口,请求该端口,会得到说明信息。
curl localhost:9200
{
"name" : "j6IWdK8",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "mF75JlD7TU2dO9PJAjL29A",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
可以通过两种方式对数据进行操作
1.curl操作:会比较麻烦,先使用这种方式增删改查
curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用url可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。
curl
-X 指定http的请求方法有 HEAD GET POST PUT DELETE
-d 指定要传输的数据
-H 指定http请求头信息
创建索引:
% curl -XPUT localhost:9200/bigdata_test
{"acknowledged":true,"shards_acknowledged":true}%
查询索引:
curl -XGET 'http://localhost:9200/_cat/indices?pretty&v'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open bigdata_test fa9YDOWxTdqZWdPSbG89VA 5 1 1 0 4.4kb 4.4kb
#这里在url后面添加了pretty是为了让其在控制台上输出的结果是一个优美的json格式
ES创建索引库和索引时的注意点:
1)索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号
2)如果没有明确指定索引数据ID,那么es会自动生成一个随机的ID,需要使用POST参数
插入数据:
curl -XPOST 'http://localhost:9200/bigdata_test/stu/1?pretty' -H 'Content-Type: application/json' -d '
{
"name":"shaofei",
"age":22,
"sex":1
}'
结果:
{
"_index" : "bigdata_test",
"_type" : "stu",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"created" : true
}
查看index的mapping
curl -XGET 'http://localhost:9200/bigdata_test/_mapping?pretty'
结果:
{
"bigdata_test" : {
"mappings" : {
"stu" : {
"properties" : {
"age" : {
"type" : "long"
},
"name" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"sex" : {
"type" : "long"
}
}
}
}
}
}
删除索引
curl -XDELETE 'http://localhost:9200/bigdata_test?pretty'
{
"acknowledged" : true
}
创建别名:
curl -XPOST 'http://localhost:9200/_aliases' -d '{
"actions": [
{
"add": {
"index": "bigdata_test",
"alias": "alias_bigdata_test"
}
}
]
}'
结果:
{"acknowledged":true}%
查看别名:(列出所有索引和别名)
curl -XGET 'http://localhost:9200/_aliases'
结果:
{"bigdata_test":{"aliases":{"alias_bigdata_test":{}}}}%
修改别名:
curl -XPOST 'http://localhost:9200/_aliases' -d '{
"actions": [
{ "add": {
"alias": "alias_bigdata_test_v1",
"index": "bigdata_test"
}}
]
}'
结果:
{"acknowledged":true}%
最终结果:
{"bigdata_test":{"aliases":{"alias_bigdata_test":{},"alias_bigdata_test_v1":{}}}}%
这是增加一个alias
修改数据
POST test1/doc/3/_update
{
"doc":{
"desc":"Beijing is the capital of China"
}
}
2.Kibana操作ES: 提供简化的工具