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
Methods inherited from Analyzer
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.
90 91 92 93 |
# File 'lib/ferret/analysis/analyzers.rb', line 90 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
99 100 101 |
# File 'lib/ferret/analysis/analyzers.rb', line 99 def add_analyzer(field, analyzer) @analyzers[field] = analyzer end |
#token_stream(field, string) ⇒ Object
103 104 105 106 107 108 109 110 |
# File 'lib/ferret/analysis/analyzers.rb', line 103 def token_stream(field, string) analyzer = @analyzers[field] if (analyzer == nil) analyzer = @default_analyzer end return analyzer.token_stream(field, string) end |