Module: Blacklight::Solr::FacetSearchBuilderBehavior

Extended by:
ActiveSupport::Concern
Included in:
FacetSearchBuilder
Defined in:
lib/blacklight/solr/facet_search_builder_behavior.rb

Instance Method Summary collapse

Instance Method Details

#add_facet_paging_to_solr(solr_params) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/blacklight/solr/facet_search_builder_behavior.rb', line 20

def add_facet_paging_to_solr(solr_params)
  return if facet.blank?

  facet_config = blacklight_config.facet_fields[facet]

  solr_params[:rows] = 0

  limit = if solr_params["facet.limit"]
            solr_params["facet.limit"].to_i
          else
            facet_config.fetch(:more_limit, blacklight_config.default_more_limit)
          end

  page = search_state.facet_page
  sort = search_state.facet_sort
  prefix = search_state.facet_prefix
  offset = (page - 1) * limit

  if facet_config.json
    add_solr_facet_json_params(solr_parameters, facet, facet_config, limit: limit + 1, offset: offset, sort: sort, prefix: prefix)
    return
  end

  # Now override with our specific things for fetching facet values
  facet_ex = facet_config.respond_to?(:ex) ? facet_config.ex : nil
  solr_params[:'facet.field'] = with_ex_local_param(facet_ex, facet_config.field)

  # Need to set as f.facet_field.facet.* to make sure we
  # override any field-specific default in the solr request handler.
  solr_params[:"f.#{facet_config.field}.facet.limit"] = limit + 1
  solr_params[:"f.#{facet_config.field}.facet.offset"] = offset
  solr_params[:"f.#{facet_config.field}.facet.sort"] = sort if sort
  solr_params[:"f.#{facet_config.field}.facet.prefix"] = prefix if prefix
end

#add_facet_suggestion_parameters(solr_params) ⇒ Object



55
56
57
58
59
60
# File 'lib/blacklight/solr/facet_search_builder_behavior.rb', line 55

def add_facet_suggestion_parameters(solr_params)
  return if facet.blank? || facet_suggestion_query.blank?

  solr_params[:'facet.contains'] = facet_suggestion_query[0..50]
  solr_params[:'facet.contains.ignoreCase'] = true
end