Class: Elasticfusion::Model::Settings

Inherits:
Object
  • Object
show all
Defined in:
lib/elasticfusion/model/settings.rb

Defined Under Namespace

Classes: DSL

Instance Method Summary collapse

Constructor Details

#initialize(model, &block) ⇒ Settings

Returns a new instance of Settings.



7
8
9
10
11
12
13
14
15
# File 'lib/elasticfusion/model/settings.rb', line 7

def initialize(model, &block)
  @model = model

  @settings = DSL.build_settings(&block) if block_given?
  @settings ||= {}

  @settings[:searchable_mapping] = searchable_mapping
  @settings[:searchable_fields] ||= @settings[:searchable_mapping].keys
end

Instance Method Details

#searchable_mappingObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/elasticfusion/model/settings.rb', line 17

def searchable_mapping
  mapping = @model.__elasticsearch__.mapping.to_hash[
    @model.__elasticsearch__.document_type.to_sym][:properties]

  if @settings[:searchable_fields]
    mapping.select { |field, _| @settings[:searchable_fields].include? field }
  else
    mapping
  end
end