一尘不染

将csv导入elasticsearch

elasticsearch

我正在做“elasticsearch入门”教程。不幸的是,本教程没有介绍将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集的结果。


阅读 996

收藏
2020-06-22

共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
2020-06-22