【大数据实战】将普通文本文件导入ElasticSearch

 

 

以《刑法》文本.txt为例。

 

 一、格式化数据

 

1,首先,ElasticSearch只能接收格式化的数据,所以,我们需要将文本文件转换为格式化的数据---json。

 下图为未处理的文本文件。

 

 

2,这里,使用python文件操作,将文本格式化为ElasticSearch可识别的json格式。

 

#python 3.6
#!/usr/bin/env python

# -*- coding:utf-8 -*-
__author__ = 'BH8ANK'
'''
最终将输出格式改为
{"index":{"_index":"xingfa","_id":1}}
{"text_entry":"犯罪的行为或者结果有一项发生在中华人民共和国领域内的,就认为是在中华人民共和国领域内犯罪。"}

'''


'''读取文件
'''
a = open(r"D:\xingfa.txt", "r",encoding='utf-8')
out = a.read()
#print(out)
TypeList = out.split('\n')
#print(TypeList)

lenth = len(TypeList)
print(lenth)

number = 1
ju_1 = '{"index":{"_index":"xingfa","_id":'
ju_2 = '{"text_entry":"'

# print(ju_1)
for x in TypeList:

    res_1 = ju_1 + str(number) + '}}'+'\n'
    print(res_1)
    a = open(r"D:\out.json", "a", encoding='UTF-8')
    a.write(res_1)


    res_2 = ju_2 + x + '"}'+'\n'
    print(res_2)
    a = open(r"D:\out.json", "a", encoding='UTF-8')
    a.write(res_2)


    a.close()
    number+=1

 

3,执行后,输出的json内容为:

 

 

 

 二、将数据导入ElasticSearch

1,我们要为即将导入的数据,建立映射。此操作可以在kibana或命令行完成。

PUT /xingfa
{
 "mappings": {
  "doc": {
       "properties": {
          "text_entry":{"type":"keyword"}
       }  
  }
 }
}

 

 

2,登录虚拟机,将之前生成的out.json文件,导入到对应ElasticSearch集群中。

 

 

我们的ES组网情况如上图。

 

操作如下:

 

 命令如下:

curl -H 'Content-Type: application/x-ndjson' -XPOST '10.0.0.19:9200/xingfa/doc/_bulk?pretty' --data-binary @out.json

 

等待命令执行完成后,即可登录kibana去查询对应的数据了。

 

使用查询语句:

GET /xingfa/_search/
{
  "query": { "match_all": {} },
  "size":"9999"                         //此处设置为9999,主要原因是,不加参数的话,默认搜索结果仅显示部分,一般是5.
}

 

也可以直接在虚拟机命令行里,查询这个索引,确认数据是否已经完成上传。

 

使用查询语句:

curl -XGET "http://10.0.0.19:9200/xingfa/_search/" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match_all": {}
  },
  "size": "9999"
}'

 

 

 

至此,完成数据导入。

 

转载于:https://www.cnblogs.com/BH8ANK/p/10496756.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值