【问题标题】:import csv into elasticsearch将csv导入elasticsearch
【发布时间】:2017-09-27 19:13:09
【问题描述】:

我正在做“弹性搜索入门”教程。不幸的是,本教程没有介绍将csv 数据库导入elasticsearch 的第一步。

我用谷歌搜索找到解决方案,但不幸的是它不起作用。以下是我想要实现的和我拥有的:

我有一个要导入的数据文件(简化版)

id,title
10,Homer's Night Out
12,Krusty Gets Busted

我想使用logstash 导入它。经过互联网研究,我最终得到以下配置:

input {
    file {
        path => ["simpsons_episodes.csv"]
        start_position => "beginning"
    }
}

filter {
    csv {
        columns => [
            "id",
            "title"
        ]
    }
}

output {
    stdout { codec => rubydebug }
    elasticsearch {
        action => "index"
        hosts => ["127.0.0.1:9200"]
        index => "simpsons"
        document_type => "episode"
        workers => 1
    }
}

我在指定文档类型时遇到了问题,因此一旦导入数据并导航到 http://localhost:9200/simpsons/episode/10,我希望看到第 10 集的结果。

【问题讨论】:

  • 如何在windows上使用logtash!

标签: csv elasticsearch import logstash


【解决方案1】:

干得好,您就快到了,您只是缺少文档 ID。您需要像这样修改elasticsearch 输出:

elasticsearch {
    action => "index"
    hosts => ["127.0.0.1:9200"]
    index => "simpsons"
    document_type => "episode"
    document_id => "%{id}"             <---- add this line
    workers => 1
}

在此之后,您将能够查询 id 为 10 的剧集

GET http://localhost:9200/simpsons/episode/10

【讨论】:

  • 有道理。很抱歉有其他问题...我执行的命令是logstash.bat -f '../simpsons_episodes.conf' CMD 结果如下:pastebin.com/raw/4LTttNDB 它似乎还没有工作。你认为我必须先创建索引吗?
  • 它在 windows cmd 上不起作用,但在 git bash 上起作用。谢谢!
  • 酷,很高兴它有帮助!
【解决方案2】:

我是moshe/elasticsearch_loader的作者
我为这个确切的问题编写了 ESL。
可以用 pip 下载:

pip install elasticsearch-loader

然后您将能够通过发出以下命令将 csv 文件加载到 elasticsearch 中:

elasticsearch_loader --index incidents --type incident csv file1.csv

此外,您可以通过在命令行中添加--id-field=document_id 来使用自定义id 文件

【讨论】:

  • 我已经用这个插件导入了一个 CSV,但是我看不到我导入的数据.. 我不知道出了什么问题。导入时在终端上记录的数据,但之后我无法使用index 找到它
猜你喜欢
  • 1970-01-01
  • 2019-07-11
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 2013-02-03
  • 2015-09-23
  • 2021-09-08
相关资源
最近更新 更多