kinaba-导入es数据及索引导入

导入数据
Elasticsearch和Kibana的结合就是用来检索和分析数据的,那么这个数据怎么来,肯定是导入进去的。

一、导入数据的说明
Elasticsearch在官方的文档探索你的数据中,有说需要将本地数据导入到Elasticsearch中。
那么怎么导入,这个就是一个问题了。

二、导入数据
在这边只需要导入数据即可。ES默认会帮助我们建立Key-Value的映射,并且会给出默认的Key的类型。默认的可能不符合你的要求,请看第三步。
例如:
line_id、play_name这样的是键(key)
INT、String这样的是键的类型。


    "line_id": INT,
    "play_name": "String",
    "speech_number": INT,
    "line_number": "String",
    "speaker": "String",
    "text_entry": "String",
}

Elasticsearch文档中要求的是JSON规范的文档数据,那么在这里可以很方便的获取到符合标准的JSON文档Json生成。

我这边已经有一个生成好的JSON文档数据文件。

~/Documents/es ⌚ 15:02:00
$ ls
accounts.json

注意:一定要在这个文件所在的同一路径下执行将文件加载到Elasticsearch集群中。
在我机器执行示例:

~/Documents/es ⌚ 15:20:22
$ curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"

命令是:我这里的localhost是说明这个ES服务跑在我本机。

curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"

命令执行正确的响应结果:
当然我这里只截取了两条,省略了,具体的会根据你的文件量生成响应。

{
    "took":279,
    "errors":false,
    "items":[
        {
            "index":{
                "_index":"bank",
                "_type":"_doc",
                "_id":"1",
                "_version":1,
                "result":"created",
                "forced_refresh":true,
                "_shards":{
                    "total":2,
                    "successful":1,
                    "failed":0
                },
                "_seq_no":0,
                "_primary_term":1,
                "status":201
            }
        },
        {
            "index":{
                "_index":"bank",
                "_type":"_doc",
                "_id":"1",
                "_version":1,
                "result":"created",
                "forced_refresh":true,
                "_shards":{
                    "total":2,
                    "successful":1,
                    "failed":0
                },
                "_seq_no":0,
                "_primary_term":1,
                "status":201
            }
        }
    ]
}

三、查看导入是否成功
数据导入了,现在要查看是否导入成功。
执行一条查看所有索引情况的命令:

curl "localhost:9200/_cat/indices?v"

得出的正确响应:
意味着我们已经将1000条数据,导入到了索引为bank下,并且在_doc类型下。

~/Documents/es ⌚ 15:20:22
$ curl "localhost:9200/_cat/indices?v"
health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   customer LtbHvkQ3R4GS_41Fi_Y_eg   5   1          6            0     20.8kb         20.8kb
yellow open   bank     XIDwelSnQZec6V_4bHIzlg   5   1       1000            0    475.1kb        475.1kb
green  open   .kibana  WZ_XKyA3RfaGIXiW3D4z-Q   1   0          1            0      3.7kb          3.7kb
yellow open   user     NnPXumxMRSGc-X7BXkDV9A   5   1          1            0      4.4kb          4.4kb
~/Documents/es ⌚ 15:30:09
$

四、在Kibana中搜索数据
1、进入Kibana
kinaba-导入es数据及索引导入_第1张图片

2、搜索刚刚创建的索引bank,点击下一步
kinaba-导入es数据及索引导入_第2张图片

3、点击下一步,创建搜索匹配符
kinaba-导入es数据及索引导入_第3张图片

4、然后看到了这一步就可以搜索了
kinaba-导入es数据及索引导入_第4张图片

5、怎么搜索
搜索的时候,并不是说你去搜索字段。
比如说我bank索引下,目前有1000条数据。
kinaba-导入es数据及索引导入_第5张图片

我导入的数据:

kinaba-导入es数据及索引导入_第6张图片

我现在要搜索:
firstname字段对应的值为Nanette。
直接输入Nanette就可以搜到结果了。

6、过滤搜索
例如搜索balance在0-20000区间的数据。

kinaba-导入es数据及索引导入_第7张图片

那么结果就搜索出来啦!

你可能感兴趣的:(elk,elasticsearch,搜索引擎,big,data)