2016-08-04 2 views
1

logstash를 통해 JSON 스트림 (json 오브젝트 파일의 행)을 elasticsearch로로드하려고합니다. 내 json 객체 필드 중 일부는 아래에서 볼 수있는 유니 코드를 포함합니다.Logstash에서 Elasticsearch로 JSON 스트림로드

"status"=>400, "error"=>{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse", "caused_by"=>{"type"=>"illegal_state_exception", "reason"=>"Mixing up field types: class org.elasticsearch.index.mapper.core.StringFieldMapper$StringFieldType != class org.elasticsearch.index.mapper.internal.IdFieldMapper$IdFieldType on field _id"}}}}, :level=>:warn} 

내 logstash.conf이 : 나는 logstash를 시작하면

{"status_link": "https://www.facebook.com/asia/videos/1118055131588324/", "num_loves": "4", "num_sads": "0", "num_wows": "0", "num_angrys": "0", "num_comments": "6", "num_reactions": "46", "num_hahas": "0", "link_name": "", "num_likes": "42", "timestamp": "2016-07-25 02:07:38", "num_shares": "8", "_id": "156915824368931_1118055131588324", "status_message": "\"\u0411\u0440\u0438\u0433\u0430\u0434\" \u0440\u0435\u0430\u043b\u0438\u0442\u0438 \u0448\u043e\u0443\u043d\u044b \u0448\u0438\u043d\u044d \u0434\u0443\u0433\u0430\u0430\u0440 07-\u0440 \u0441\u0430\u0440\u044b\u043d 28-\u043d\u044b \u043f\u04af\u0440\u044d\u0432 \u0433\u0430\u0440\u0430\u0433\u0438\u0439\u043d \u043e\u0440\u043e\u0439 18:00 \u0446\u0430\u0433\u0430\u0430\u0441", "status_type": "video"} 

, 그것은 나에게 오류 제공

내가 유니 코드없이 JSON 개체를로드하려고
input 
{ 
    file 
    { 
     path => "test.json" 
     start_position => "beginning" 
     sincedb_path => "/dev/null" 
     exclude => "*.gz" 
     type => "posts" 
     codec => "json" 
    } 
} 

filter { 
    json { 
    source => "message" 
    } 
} 

output { 
    elasticsearch { 
    hosts => ["localhost:9200"] 
    index => "fb" 
    codec => "json" 
    } 
} 

, 성공적으로 구문 분석을하고 elasticsearch의 색인.

답변

2

문제는 문서에 _id 필드가있는 것입니다. _id은 보존 된 필드입니다. 따라서 제거하거나 이름을 변경해야합니다.

+0

나중에 댓글을로드하고 게시물과 상위 - 하위 관계로 설정합니다. 게시물과 댓글을 연결할 수있는 필드가 필드가 아닌 것입니까? – KevinOelen

+1

문서 식별자로'_id'를 사용하고 싶다면 ID로 이름을 바꾸고 elasticsearch 출력에서'document_id => "% {[event] [id]}"'를 사용하십시오. – alpert

관련 문제