Class: Blacklight::FacetSearchService

Inherits:
Object
  • Object
show all
Defined in:
app/services/blacklight/facet_search_service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config:, search_state:, search_builder_class: config.facet_search_builder_class, **context) ⇒ FacetSearchService

Returns a new instance of FacetSearchService.



6
7
8
9
10
11
12
# File 'app/services/blacklight/facet_search_service.rb', line 6

def initialize(config:, search_state:, search_builder_class: config.facet_search_builder_class, **context)
  @blacklight_config = config
  @search_state = search_state
  @user_params = @search_state.params
  @search_builder_class = search_builder_class
  @context = context
end

Instance Attribute Details

#blacklight_configObject (readonly)

The blacklight_config + controller are accessed by the search_builder



15
16
17
# File 'app/services/blacklight/facet_search_service.rb', line 15

def blacklight_config
  @blacklight_config
end

#contextObject (readonly)

The blacklight_config + controller are accessed by the search_builder



15
16
17
# File 'app/services/blacklight/facet_search_service.rb', line 15

def context
  @context
end

Instance Method Details

#facet_field_response(facet_field, extra_controller_params = {}) ⇒ Blacklight::Solr::Response

Get the solr response when retrieving only a single facet field

Returns:



28
29
30
31
# File 'app/services/blacklight/facet_search_service.rb', line 28

def facet_field_response(facet_field, extra_controller_params = {})
  query = search_builder.with(search_state).facet(facet_field)
  repository.search(params: query.merge(extra_controller_params))
end

#facet_suggest_response(facet_field, facet_suggestion_query, extra_controller_params = {}) ⇒ Object



33
34
35
36
# File 'app/services/blacklight/facet_search_service.rb', line 33

def facet_suggest_response(facet_field, facet_suggestion_query, extra_controller_params = {})
  query = search_builder.with(search_state).facet(facet_field).facet_suggestion_query(facet_suggestion_query)
  repository.search(params: query.merge(extra_controller_params))
end

#search_builderObject



17
18
19
# File 'app/services/blacklight/facet_search_service.rb', line 17

def search_builder
  search_builder_class.new(self)
end

#search_state_classObject



21
22
23
# File 'app/services/blacklight/facet_search_service.rb', line 21

def search_state_class
  @search_state.class
end