Class: Ferret::Analysis::PerFieldAnalyzerWrapper

Inherits:
Analyzer
  • Object
show all
Defined in:
lib/ferret/analysis/analyzers.rb

Overview

This analyzer is used to facilitate scenarios where different fields require different analysis techniques. Use #add_analyzer to add a non-default analyzer on a field name basis. See tc_per_field_analyzer_wrapper for example usage.

Instance Method Summary collapse

Constructor Details

#initialize(default_analyzer) ⇒ PerFieldAnalyzerWrapper

Constructs with default analyzer.

default_analyzer

Any fields not specifically defined to use a different analyzer will use the one provided here.



71
72
73
74
# File 'lib/ferret/analysis/analyzers.rb', line 71

def initialize(default_analyzer)
  @default_analyzer = default_analyzer
  @analyzers = {}
end

Instance Method Details

#add_analyzer(field, analyzer) ⇒ Object

Defines an analyzer to use for the specified field.

field

field name requiring a non-default analyzer.

analyzer

non-default analyzer to use for field



80
81
82
# File 'lib/ferret/analysis/analyzers.rb', line 80

def add_analyzer(field, analyzer)
  @analyzers[field] = analyzer
end

#token_stream(field, string) ⇒ Object



84
85
86
87
88
89
90
91
# File 'lib/ferret/analysis/analyzers.rb', line 84

def token_stream(field, string)
  analyzer = @analyzers[field]
  if (analyzer == nil)
    analyzer = @default_analyzer;
  end

  return analyzer.token_stream(field, string)
end