Class: Hyrax::CatalogSearchBuilder

Inherits:
SearchBuilder
  • Object
show all
Defined in:
app/search_builders/hyrax/catalog_search_builder.rb

Instance Method Summary collapse

Methods included from SearchFilters

#gated_discovery_filters, #with_access

Methods included from FilterSuppressed

#only_active_works

Methods included from FilterByType

#filter_models

Instance Method Details

#filter_collection_facet_for_access(solr_parameters) ⇒ Object

only return facet counts for collections that this user has access to see



24
25
26
27
28
29
30
31
32
33
# File 'app/search_builders/hyrax/catalog_search_builder.rb', line 24

def filter_collection_facet_for_access(solr_parameters)
  return if current_ability.admin?

  collection_ids = Hyrax::Collections::PermissionsService.collection_ids_for_view(ability: current_ability).map { |id| "^#{id}$" }
  solr_parameters['f.member_of_collection_ids_ssim.facet.matches'] = if collection_ids.present?
                                                                       collection_ids.join('|')
                                                                     else
                                                                       "^$"
                                                                     end
end

#show_only_active_records(solr_parameters) ⇒ Object

show works that are in the active state.



18
19
20
21
# File 'app/search_builders/hyrax/catalog_search_builder.rb', line 18

def show_only_active_records(solr_parameters)
  solr_parameters[:fq] ||= []
  solr_parameters[:fq] << '-suppressed_bsi:true'
end

#show_works_or_works_that_contain_files(solr_parameters) ⇒ Object

show both works that match the query and works that contain files that match the query



10
11
12
13
14
15
# File 'app/search_builders/hyrax/catalog_search_builder.rb', line 10

def show_works_or_works_that_contain_files(solr_parameters)
  return if blacklight_params[:q].blank? || blacklight_params[:search_field] != 'all_fields'
  solr_parameters[:user_query] = blacklight_params[:q]
  solr_parameters[:q] = new_query
  solr_parameters[:defType] = 'lucene'
end