首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
30 篇文章
1
ElasticSearch高级功能:Cross Cluster Replication实战
2
ElasticSearch压测工具:esrally离线使用详解
3
ElasticSearch实战:Kibana可视化
4
ElasticSearch实战:IK中文分词插件
5
ElasticSearch实战:将文本文件导入kibana
6
ElasticSearch实战:Linux日志对接Kibana
7
Elasticsearch:flattened 数据类型 (7.3 发行版新功能)
8
Elasticsearch: range 数据类型及基于range的聚合 (7.4发行版新功能)
9
腾讯云ES索引生命周期管理使用教程(视频)
10
腾讯云ES数据备份恢复使用教程(视频)
11
Elasticsearch:透彻理解 Elasticsearch 中的 Bucket aggregation
12
Elasticsearch:pipeline aggregation 介绍
13
Elasticsearch:Index 生命周期管理入门
14
Elastic Stack 7.7 Observability 新功能介绍
15
腾讯云中 Elastic Stack 的 Beats 部署最佳实践
16
海量挑战:腾讯云ES可用性及性能优化实践
17
Elasticsearch: Reindex接口
18
Elasticsearch:Java 运用示例
19
如何安装 Elastic 栈中的 Logstash
20
Logstash: 应用实践 - 装载 CSV 文档到 Elasticsearch
21
2分钟快速了解Elasticsearch
22
Elastic:Elasticsearch 的分片管理策略
23
Elasticsearch:如何把 Elasticsearch 中的数据导出为 CSV 格式的文件
24
Elasticsearch:Elasticsearch 中的 refresh 和 flush 操作指南
25
Kibana: 如何使用 Search Bar
26
Kibana:如何开始使用 Kibana
27
10分钟快速入门海量数据搜索分析引擎 Elasticsearch
28
腾讯万亿级 Elasticsearch 内存效率提升解密
29
腾讯Elasticsearch海量规模背后的内核优化剖析
30
【ElasticSearch性能测试】esrally最新版本的编译、安装与使用

ElasticSearch实战:将文本文件导入kibana

原创声明:本文首发腾讯云·云+社区,未经允许,不得转载

前文写过,如何将linux日志导入到kibana----《ElasticSearch实战:Linux日志对接Kibana》,本文主要解决另一个问题:如何将非格式化的文本文件(如TXT等)导入到kibana中。


下面,我们以《中华人民共和国刑法.txt》为例,详细介绍如何进行处理。

《刑法》文本部分截图

一,分析导入格式和导入方法

1,文本格式分析

根据官方文档 https://www.elastic.co/guide/en/kibana/current/tutorial-load-dataset.html 的介绍,提供了几组已经格式化的数据,下面以shakespeare.json来详细分析。

ElasticSearch官网提供的已经格式化的数据

据上图,我们可以看到,格式化的json数据主要分两部分,一部分负责描述索引,如 :

代码语言:json
复制
   {"index":{"_index":"shakespeare","_id":0}}

另一部分,用来描述文档内容:

代码语言:json
复制
   {"type":"act","line_id":1,"play_name":"Henry IV", "speech_number":"","line_number":"","speaker":"","text_entry":"ACT I"}

因此,我们也需要将《刑法》文本处理为该格式。

2,导入前的准备

根据官方文档介绍,导入数据前,我们首先需要在Kibana上为该索引创建映射mapping,可以简单地理解为,为一个表格编写好表头。然后,再使用PUT语句将数据导入。

二,实际操作

1,文本处理

这里我们采用python3进行文本处理,处理的原则是,以换行符为界,每一行,做为一个独立的文档(doc)。最终输出json文件。

代码语言:python
代码运行次数:0
复制
#python 3.6
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'BH8ANK'
'''
最终将输出格式改为
{"indeeach_row":{"_index":"xingfa","_id":1}}
{"text_entry":"犯罪的行为或者结果有一项发生在中华人民共和国领域内的,就认为是在中华人民共和国领域内犯罪。"}

'''


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

lenth = len(read_result)
print(lenth)

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

# print(ju_1)
for each_row in read_result:
    #第奇数行,输出对索引的描述
    res_1 = ju_1 + str(number) + '}}'+'\n'
    print(res_1)
    a = open(r"D:\out.json", "a", encoding='UTF-8')
    a.write(res_1)

    #第偶数行,输出文档(doc)的内容
    res_2 = ju_2 + each_row + '"}'+'\n'
    print(res_2)
    a = open(r"D:\out.json", "a", encoding='UTF-8')
    a.write(res_2)

    a.close()
    number+=1

print("文件格式化完成!")

上述代码执行后,输出的格式化文件内容如下图:

json格式化后的《刑法》文本

2,数据导入

(1)在Kibana上建立映射

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

(2)使用curl命令导入数据

代码语言:shell
复制
[root@VM_0_7_centos elasticsearch]# curl -H 'Content-Type: application/x-ndjson' -XPOST '10.0.0.24:9200/xingfa/doc/_bulk?pretty' --data-binary @out.json
{
  "took" : 300,
  "errors" : false,
  "items" : [
    {
      "index" : {
        "_index" : "xingfa",
        "_type" : "doc",
        "_id" : "1",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 2,
          "failed" : 0
        },
        "created" : true,
        "status" : 201
      }
    },

…………
(略)
…………

3,索引检查

登录kibana管理页,确认上面的数据是否已成功导入。

代码语言:javascript
复制
GET /_cat/indices?v
kibana开发工具中查看所有索引

查看索引内容

代码语言:javascript
复制
GET /xingfa/_search/
{
  "query": {
    "match_all": {}
  },
  "size": "9999"
}
kibana中查询index:xingfa 返回的内容

至此,我们已将《刑法》文本,导入到kibana中了。

三、应用

这里简单讲一下,如何使用Kibana进行数据检索。例如,我们需要查询《刑法》中,有关“走私”和“拐卖”的相关条款。

(1)在kibana首页,打开Discover,在页面中,新增索引类型,类型名与上面导入数据的index名保持一致,即“xingfa”,然后点击"Creat",等待几秒到几分钟,如下图

添加索引类型

(2)索引类型添加完成后,会自动跳转到配置页,此时,我们重新打开Discover,即可进行关键字检索,如下图:

(点击图片可看高清大图)

使用kibana进行关键字检索

至此,我们已将普通文本导入到kibana中,并可以通过kibana进行关键字检索了。

下一篇
举报
领券