Class: Xapit::ClassicIndexer

Inherits:
AbstractIndexer show all
Defined in:
lib/xapit/indexers/classic_indexer.rb

Instance Method Summary collapse

Methods inherited from AbstractIndexer

#add_member, #base_terms, #document_for, #facet_terms, #facet_values, #field_terms, #field_values, #index_terms, #initialize, #other_terms, #save_facet_options_for, #sortable_values, #text_terms, #update_member, #values

Constructor Details

This class inherits a constructor from Xapit::AbstractIndexer

Instance Method Details

#create_term_generatorObject



21
22
23
24
25
26
27
# File 'lib/xapit/indexers/classic_indexer.rb', line 21

def create_term_generator
  term_generator = Xapian::TermGenerator.new
  term_generator.set_flags(Xapian::TermGenerator::FLAG_SPELLING, 0) if Config.spelling?
  term_generator.database = database
  term_generator.stemmer = Xapian::Stem.new(Config.stemming)
  term_generator
end

#index_text_attributes(member, document) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/xapit/indexers/classic_indexer.rb', line 3

def index_text_attributes(member, document)
  term_generator.document = document
  @blueprint.text_attributes.each do |name, options|
    content = member.send(name)
    if options[:proc]
      index_terms(options[:proc].call(content.to_s).reject(&:blank?).map(&:to_s).map(&:downcase), document)
    elsif content.kind_of? Array
      index_terms(content.reject(&:blank?).map(&:to_s).map(&:downcase), document)
    else
      term_generator.index_text(content.to_s)
    end
  end
end

#term_generatorObject



17
18
19
# File 'lib/xapit/indexers/classic_indexer.rb', line 17

def term_generator
  @term_generator ||= create_term_generator
end