Class: Ferret::Analysis::PerFieldAnalyzerWrapper
- 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
-
#add_analyzer(field, analyzer) ⇒ Object
Defines an analyzer to use for the specified field.
-
#initialize(default_analyzer) ⇒ PerFieldAnalyzerWrapper
constructor
Constructs with default analyzer.
- #token_stream(field, string) ⇒ Object
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 |