Class: LogStash::Filters::SearchEngine

Inherits:
Base
  • Object
show all
Defined in:
lib/logstash/filters/search_engine.rb

Overview

Filter to extract search engine query from HTTP query

Instance Method Summary collapse

Instance Method Details

#filter(event) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 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

#registerObject



31
32
33
34
35
36
37
# File 'lib/logstash/filters/search_engine.rb', line 31

def register
  @queryParsers = {
     "Google" => GoogleQueryParser.new,
     "Bing"   => BingQueryParser.new,
     "Yahoo"  => YahooQueryParser.new
  }
end