Class: FullSearch::Highlighter

Inherits:
Object
  • Object
show all
Extended by:
Quoting
Defined in:
lib/full_search/highlighter.rb

Class Method Summary collapse

Class Method Details

.apply!(records, model, query, record_ids: nil) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/full_search/highlighter.rb', line 6

def apply!(records, model, query, record_ids: nil)
  snippets = build_snippets(model, query, record_ids: record_ids)
  if snippets.values.all?(&:nil?) && records.any?
    snippets = manual_snippets(records, model, query)
  end
  records.each { |record| record.full_search_snippet = snippets[record.id] }
  records
end

.apply_fields!(records, model, query, record_ids: nil) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/full_search/highlighter.rb', line 15

def apply_fields!(records, model, query, record_ids: nil)
  fields = build_field_snippets(model, query, record_ids: record_ids)
  if fields.values.all?(&:empty?) && records.any?
    fields = manual_field_snippets(records, model, query)
  end
  exact_fields = exact_match_field_snippets(records, model, query)
  records.each do |record|
    merged = fields[record.id] || {}
    exact_fields.fetch(record.id, {}).each { |k, v| merged[k] ||= v }
    record.full_search_highlight_fields = merged
  end
  records
end