Class: BlacklightAdvancedSearch::QueryParser

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/newspaper_works/templates/config/initializers/patch_blacklight_advanced_search.rb

Instance Method Summary collapse

Instance Method Details

#add_date_range_to_queries(params) ⇒ Object

format date input for Solr



24
25
26
27
28
29
30
31
32
33
34
35
36
# 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) ⇒ Object

override to add date range to query



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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