我正在做“弹性搜索入门”教程。不幸的是,本教程没有涵盖将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集的结果。
发布于 2017-04-30 12:30:25
干得好,您马上就到了,只是缺少文档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
发布于 2019-01-25 19:07:13
我是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文件
https://stackoverflow.com/questions/43701016
复制相似问题