Class: Spotlight::FieldMetadata

Inherits:
Object
  • Object
show all
Defined in:
app/models/spotlight/field_metadata.rb

Overview

Expose Solr index metadata about fields

Constant Summary collapse

FACET_LIMIT =
20

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(exhibit, repository, blacklight_config) ⇒ FieldMetadata

Returns a new instance of FieldMetadata.



11
12
13
14
15
# File 'app/models/spotlight/field_metadata.rb', line 11

def initialize(exhibit, repository, blacklight_config)
  @exhibit = exhibit
  @repository = repository
  @blacklight_config = blacklight_config
end

Instance Attribute Details

#blacklight_configObject (readonly)

Returns the value of attribute blacklight_config.



9
10
11
# File 'app/models/spotlight/field_metadata.rb', line 9

def blacklight_config
  @blacklight_config
end

#exhibitObject (readonly) Also known as: current_exhibit

Returns the value of attribute exhibit.



9
10
11
# File 'app/models/spotlight/field_metadata.rb', line 9

def exhibit
  @exhibit
end

#repositoryObject (readonly)

Returns the value of attribute repository.



9
10
11
# File 'app/models/spotlight/field_metadata.rb', line 9

def repository
  @repository
end

Instance Method Details

#field(key) ⇒ Object



17
18
19
20
21
22
23
# File 'app/models/spotlight/field_metadata.rb', line 17

def field(key)
  {
    document_count: document_counts.fetch(field_name(key), 0),
    value_count: terms.fetch(field_name(key), []).length,
    terms: terms.fetch(field_name(key), [])
  }
end

#search_paramsObject



25
26
27
# File 'app/models/spotlight/field_metadata.rb', line 25

def search_params
  search_builder.merge(rows: 0, 'facet.limit' => FACET_LIMIT + 1)
end