Class: Xapit::ClassicIndexer
Instance Method Summary
collapse
#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
Instance Method Details
#create_term_generator ⇒ Object
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_generator ⇒ Object
17
18
19
|
# File 'lib/xapit/indexers/classic_indexer.rb', line 17
def term_generator
@term_generator ||= create_term_generator
end
|