Sha256: 9b40735bbb0dbdf7e04629abaf07f77cb184b55fd9d6ed2cf11df281d68b86d4

Contents?: true

Size: 1.43 KB

Versions: 14

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

module Arclight
  ##
  # Customized Search Behavior for Arclight
  module SearchBehavior
    extend ActiveSupport::Concern

    included do
      self.default_processor_chain += %i[
        add_highlighting
        add_grouping
        add_hierarchy_behavior
      ]
    end

    # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
    def add_hierarchy_behavior(solr_parameters)
      return unless search_state.controller&.action_name == 'hierarchy'

      solr_parameters[:fq] ||= []
      solr_parameters[:fq] << "_nest_parent_:#{blacklight_params[:id]}"
      solr_parameters[:rows] = blacklight_params[:per_page]&.to_i || blacklight_params[:limit]&.to_i || 999_999_999
      solr_parameters[:start] = blacklight_params[:offset] if blacklight_params[:offset]
      solr_parameters[:sort] = 'sort_isi asc'
      solr_parameters[:facet] = false
    end
    # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity

    ##
    # Add highlighting
    def add_highlighting(solr_params)
      solr_params['hl'] = true
      solr_params['hl.fl'] = CatalogController.blacklight_config.highlight_field
      solr_params['hl.snippets'] = 3
      solr_params
    end

    ##
    # Adds grouping parameters for Solr if enabled
    def add_grouping(solr_params)
      solr_params.merge!(Arclight::Engine.config.catalog_controller_group_query_params) if blacklight_params[:group] == 'true'

      solr_params
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
arclight-1.4.0 app/models/concerns/arclight/search_behavior.rb
arclight-1.3.0 app/models/concerns/arclight/search_behavior.rb
arclight-1.2.0 app/models/concerns/arclight/search_behavior.rb
arclight-1.1.3 app/models/concerns/arclight/search_behavior.rb
arclight-1.1.2 app/models/concerns/arclight/search_behavior.rb
arclight-1.1.1 app/models/concerns/arclight/search_behavior.rb
arclight-1.1.0 app/models/concerns/arclight/search_behavior.rb
arclight-1.0.1 app/models/concerns/arclight/search_behavior.rb
arclight-1.0.0 app/models/concerns/arclight/search_behavior.rb
arclight-1.0.0.beta6 app/models/concerns/arclight/search_behavior.rb
arclight-1.0.0.beta4 app/models/concerns/arclight/search_behavior.rb
arclight-1.0.0.beta3 app/models/concerns/arclight/search_behavior.rb
arclight-1.0.0.beta2 app/models/concerns/arclight/search_behavior.rb
arclight-1.0.0.beta1 app/models/concerns/arclight/search_behavior.rb