将字段添加到Logstash Twitter输入和Elasticsearch输出

时间:2015-03-07 16:01:42

标签: ruby twitter elasticsearch logstash

我正在使用logstash将twitter流保存到elasticsearch。保存之前,我想

  1. 添加一个新字段,指示推文是RT还是回复还是有机
  2. 使用tweet id作为elasticsearch的文档ID
  3. 但我一直无法做到! Logstash配置文件:

    input {
    twitter {
        oauth_token => ""
        oauth_token_secret => ""
        consumer_key => ""
        consumer_secret => ""
        full_tweet => true
        keywords => ["test"]
    }
    }
    
    filter {
    ruby {
        code => "
            if !event['retweeted_status'].nil?
                event['tweet_type'] = 'Retweet'
            elsif !event['in_reply_to_screen_name'].nil?
                event['tweet_type'] = 'Reply'
            else
                event['tweet_type'] = 'Organic'
            end
        "
    }
    }
    
    output {
    elasticsearch {
        document_id => [id]
        index_type => "twitter"
        protocol => "http"
        bind_host => "127.0.0.1"
    }
    }
    

    我做错了什么?

1 个答案:

答案 0 :(得分:0)

你不需要投入红宝石来测试田地。尝试:

if [retweeted_status] {
    mutate {
       add_field => { "tweet_type", "Retweet" }
    }
}

(注意:这是伪代码;我可能有{s和=>错误)。

至于使用文档ID,请尝试:

document_id => "%{id}"
相关问题