Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSON流从Logstash加载到Elasticsearch_Json_Parsing_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Unicode_Logstash - Fatal编程技术网 elasticsearch,unicode,logstash,Json,Parsing,elasticsearch,Unicode,Logstash" /> elasticsearch,unicode,logstash,Json,Parsing,elasticsearch,Unicode,Logstash" />

将JSON流从Logstash加载到Elasticsearch

将JSON流从Logstash加载到Elasticsearch,json,parsing,elasticsearch,unicode,logstash,Json,Parsing,elasticsearch,Unicode,Logstash,我试图通过logstash将JSON流(JSON对象文件行)加载到elasticsearch。我的一些json对象字段包含unicode,如下所示 {"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_react

我试图通过logstash将JSON流(JSON对象文件行)加载到elasticsearch。我的一些json对象字段包含unicode,如下所示

{"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"}
当我启动logstash时,它会给我一个错误:

"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:

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"
   }
}

我尝试在没有unicode的情况下加载json对象,它成功地在elasticsearch中解析和索引。

问题是您的文档中有一个
\u id
字段<代码>\u id是一个保留字段。因此,您需要删除或重命名它。

稍后我将加载注释,并将其与帖子建立父子关系。那么_id字段不是唯一用来连接帖子和评论的字段吗?如果你想使用
_id
作为你的文档id,我的建议是将它重命名为id,并在你的elasticsearch输出中使用
文档id=>“%{[event][id]}”