class BlacklightAdvancedSearch::QueryParser

Public Instance Methods

add_date_range_to_queries(params) click to toggle source

format date input for Solr

# File lib/generators/newspaper_works/templates/config/initializers/patch_blacklight_advanced_search.rb, line 24
def add_date_range_to_queries(params)
  range_start = if params[:date_start].blank? || params[:date_start].match(/[\D]+/)
                  '*'
                else
                  params[:date_start] + '-01-01T00:00:00.000Z'
                end
  range_end = if params[:date_end].blank? || params[:date_end].match(/[\D]+/)
                '*'
              else
                params[:date_end] + '-12-31T23:59:59.999Z'
              end
  '(publication_date_dtsi:[' + range_start + ' TO ' + range_end + '])'
end
process_query(params, config) click to toggle source

override to add date range to query

# File lib/generators/newspaper_works/templates/config/initializers/patch_blacklight_advanced_search.rb, line 8
def process_query(params, config)
  queries = keyword_queries.map do |field, query|
    ParsingNesting::Tree.parse(query,
                               config.advanced_search[:query_parser]).to_query(local_param_hash(field,
                                                                                                config))
  end
  queries.join(" #{keyword_op} ")
  return queries if params[:date_start].blank? && params[:date_end].blank?
  if queries.blank?
    add_date_range_to_queries(params)
  else
    [queries, add_date_range_to_queries(params)].join(' AND ')
  end
end