Class: Hyrax::CatalogSearchBuilder
- Inherits:
-
SearchBuilder
- Object
- SearchBuilder
- SearchBuilder
- Hyrax::CatalogSearchBuilder
- Defined in:
- app/search_builders/hyrax/catalog_search_builder.rb
Overview
The default Blacklight catalog search_builder_class for Hyrax.
Use of this builder is configured in the CatalogController generated by Hyrax’s install task.
If you plan to customize the base catalog search builder behavior (e.g. by adding a mixin module provided by a blacklight extension gem), inheriting this
class, customizing behavior, and reconfiguring `CatalogController` is the
preferred mechanism.
Instance Method Summary collapse
-
#filter_collection_facet_for_access(solr_parameters) ⇒ Object
only return facet counts for collections that this user has access to see.
-
#show_only_active_records(solr_parameters) ⇒ Object
show works that are in the active state.
-
#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.
Instance Method Details
#filter_collection_facet_for_access(solr_parameters) ⇒ Object
only return facet counts for collections that this user has access to see
53 54 55 56 57 58 59 60 61 62 |
# File 'app/search_builders/hyrax/catalog_search_builder.rb', line 53 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.
47 48 49 50 |
# File 'app/search_builders/hyrax/catalog_search_builder.rb', line 47 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
39 40 41 42 43 44 |
# File 'app/search_builders/hyrax/catalog_search_builder.rb', line 39 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 |