2017-05-15 45 views
1

我用Logstash從https://www.kaggle.com/wcukierski/the-simpsons-by-the-data攝取CSV文件並將其保存到Elasticsearch。需要幫助識別被Elasticsearch攝入的文檔類型(通過Logstash)

input { 
    file { 
    path => "/Users/xyz/Downloads/the-simpsons-by-the-data/simpsons_characters.csv" 
    start_position => beginning 
    sincedb_path => "/dev/null" 
    } 
} 

filter { 
    csv { 
    columns => ["id", "name", "normalized_name", "gender"] 
    separator => "," 
    } 
} 

output { 
    stdout { 
    codec => rubydebug 
    } 
    elasticsearch { 
    hosts => "localhost" 
    action => "index" 
    index => "simpsons" 
    } 
} 

然而,當我查詢,像這樣:http://localhost:9200/simpsons/name/Lou 其中 simpsons = index name = type(我想...不知道)

我得到以下對於初學者來說,我用下面的conf攝入simpsons_characters.csv迴應:

{ 
    "_index": "simpsons", 
    "_type": "name", 
    "_id": "Lou", 
    "found": false 
} 

所以,問題是,爲什麼我沒有得到正確的答案。此外,當您通過csv進行批量攝取時,文檔的type是什麼?

謝謝!

回答

2

The default type in Logstash Elasticsearch output is logs。所以,不管你如何定義你的ID(無論是把它從CSV - document_id => "%{id}"還是讓ES定義自己),你可以得到這些文件作爲http://localhost:9200/simpsons/logs/THE_ID

如果你不知道ID,並希望簡單地檢查,如果事情是存在的:http://localhost:9200/simpsons/logs/_search?pretty

如果您想查看索引的映射是什麼,例如查找索引_typehttp://localhost:9200/simpsons/_mapping?pretty

要更改默認_type

elasticsearch { 
    hosts => "localhost" 
    action => "index" 
    index => "simpsons" 
    document_type => "characters" 
    document_id => "%{id}" 
    } 
+0

所以,我想,和它的作品。但是,那麼我該如何修改conf文件,而不是'logs'呢是'characters'呢?我猜如何設置'document_type'以便它不會默認爲'logs'?謝謝! – iyerland

+0

您可以指定類似'document_type =>「字符」'。 –

+0

是的:)我只是這樣做,它的工作!謝謝!將您的答案標記爲首選答案! – iyerland

1

在這裏,你有沒有在你的logstash輸出指定id field。在這種情況下elasticsearch將ASIGN一個隨機ID您的文檔和您正在使用id=Lou搜索文件。 添加document_id => "%{id}"將解決您的問題。

output { 
    stdout { 
    codec => rubydebug 
    } 
    elasticsearch { 
    hosts => "localhost" 
    action => "index" 
    index => "simpsons" 
    document_id => "%{id}" 
    } 
} 
+0

感謝。試過了,但仍得到相同的迴應。 'HTTP://本地主機:9200 /辛普森/ ID/1868'回報: { 「_index」: 「辛普森一家」, 「_type」: 「ID」, 「_id」: 「1868」, 「發現「:假 } – iyerland