前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【BIGDATA】将普通文本文件导入ElasticSearch

【BIGDATA】将普通文本文件导入ElasticSearch

作者头像
BH8ANK
发布2021-01-29 12:12:40
1.6K0
发布2021-01-29 12:12:40
举报
文章被收录于专栏:云技术分享云技术分享

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

一、格式化数据

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

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

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

代码语言:javascript
复制
#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或命令行完成。

代码语言:javascript
复制
PUT /xingfa
{
 "mappings": {
  "doc": {
       "properties": {
          "text_entry":{"type":"keyword"}
       }  
  }
 }
}

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

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

操作如下:

命令如下:

代码语言:javascript
复制
curl -H 'Content-Type: application/x-ndjson' -XPOST '10.0.0.19:9200/xingfa/doc/_bulk?pretty' --data-binary @out.json

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

使用查询语句:

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

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

使用查询语句:

代码语言:javascript
复制
curl -XGET "http://10.0.0.19:9200/xingfa/_search/" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match_all": {}
  },
  "size": "9999"
}'

至此,完成数据导入。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、格式化数据
  • 二、将数据导入ElasticSearch
    • 1,我们要为即将导入的数据,建立映射。此操作可以在kibana或命令行完成。
      • 2,登录虚拟机,将之前生成的out.json文件,导入到对应ElasticSearch集群中。
      相关产品与服务
      Elasticsearch Service
      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档