ade*_*ura 20 csv import elasticsearch logstash
我正在做"弹性搜索入门"教程.不幸的是,本教程未涵盖将csv数据库导入elasticsearch的第一步.
我用谷歌搜索解决方案,但不幸的是它不起作用.这是我想要实现的和我拥有的:
我有一个包含我要导入的数据的文件(简化)
id,title
10,Homer's Night Out
12,Krusty Gets Busted
Run Code Online (Sandbox Code Playgroud)
我想用它导入它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
}
}
Run Code Online (Sandbox Code Playgroud)
我在指定文档类型时遇到问题,因此一旦导入数据并导航到http:// localhost:9200/simpsons/episode/10我希望看到第10集的结果.
Val*_*Val 16
干得好,你几乎就在那里,你只是错过了文件ID.您需要elasticsearch像这样修改输出:
elasticsearch {
action => "index"
hosts => ["127.0.0.1:9200"]
index => "simpsons"
document_type => "episode"
document_id => "%{id}" <---- add this line
workers => 1
}
Run Code Online (Sandbox Code Playgroud)
在此之后,您将能够查询ID为10的剧集
GET http://localhost:9200/simpsons/episode/10
Run Code Online (Sandbox Code Playgroud)
我是
为这个确切的问题写ESL 的moshe / elasticsearch_loader的作者
。
您可以通过pip下载它:
pip install elasticsearch-loader
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过发出以下命令将csv文件加载到elasticsearch中:
elasticsearch_loader --index incidents --type incident csv file1.csv
Run Code Online (Sandbox Code Playgroud)
此外,您可以通过添加--id-field=document_id到命令行来使用自定义ID文件
| 归档时间: |
|
| 查看次数: |
21289 次 |
| 最近记录: |