class LogStash::Filters::SearchEngine

Filter to extract search engine query from HTTP query

Public Instance Methods

filter(event) click to toggle source
# File lib/logstash/filters/search_engine.rb, line 40
def filter(event)

  @queryParsers.each do |name, parser|
    if @engines.include?(name) && parser.match(event.get(@site_name_field))
      valid_query_field = Utils.removeInvalidChars(event.get(@query_field))
      if (valid_query_field)
        event.set(@output_field, parser.parse(URI.decode(valid_query_field)))
      else
        @logger.warn? && @logger.warn("Search engine failed to parse query field")
      end
    end
  end

  filter_matched(event)
end
register() click to toggle source
# File lib/logstash/filters/search_engine.rb, line 31
def register
  @queryParsers = {
     "Google" => GoogleQueryParser.new,
     "Bing"   => BingQueryParser.new,
     "Yahoo"  => YahooQueryParser.new
  }
end