Skip to content

Instantly share code, notes, and snippets.

@yulgit1
Last active March 9, 2017 16:45
Show Gist options
  • Save yulgit1/417342e8181767cda3c14169690524a6 to your computer and use it in GitHub Desktop.
Save yulgit1/417342e8181767cda3c14169690524a6 to your computer and use it in GitHub Desktop.
sysops-MacBook-Pro-3% more search_builder.rb
# frozen_string_literal: true
class SearchBuilder < Blacklight::SearchBuilder
include Blacklight::Solr::SearchBuilderBehavior
include BlacklightAdvancedSearch::AdvancedSearchBuilder
self.default_processor_chain += [:add_advanced_parse_q_to_solr, :add_advanced_search_to_solr]
##
# @example Adding a new step to the processor chain
# self.default_processor_chain += [:add_custom_data_to_query]
#
# def add_custom_data_to_query(solr_parameters)
# solr_parameters[:custom] = blacklight_params[:user_value]
# end
def add_advanced_search_to_solr(solr_parameters)
Rails.logger.debug "BEFORESP: #{solr_parameters.inspect}"
Rails.logger.debug "BEFOREBP: #{blacklight_params.inspect}"
#blacklight_params[:all_fields] = "baseball basketball football"
Rails.logger.debug "AFTER_BP: #{blacklight_params.inspect}"
#Rails.logger.debug "BEFOREBC: #{self.blacklight_config.inspect}"
if is_advanced_search?
advanced_query = BlacklightAdvancedSearch::QueryParser.new(blacklight_params, self.blacklight_config)
BlacklightAdvancedSearch.deep_merge!(solr_parameters, advanced_query.to_solr)
unless advanced_query.keyword_queries.empty?
Rails.logger.debug "AFTER: #{solr_parameters.inspect}"
solr_parameters[:qt] = self.blacklight_config.advanced_search[:qt]
solr_parameters[:defType] = "lucene"
end
end
end
end
BEFORESP: {"facet.field"=>["format", "subject_topic_facet", "language_facet", "lc_1letter_facet", "subject_geo_facet", "subject_era_facet"], "facet.query"=>[], "facet.pivot"=>["format,language_facet"], "fq"=>[], "hl.fl"=>[], "rows"=>10, "facet"=>true, "f.subject_topic_facet.facet.limit"=>21, "f.language_facet.facet.limit"=>11, "sort"=>"author_sort asc, title_sort asc"}
BEFOREBP: <ActionController::Parameters {"utf8"=>"✓", "op"=>"OR", "all_fields"=>"baseball basketball", "title"=>"Kareem Abdul Jabbar", "author"=>"", "subject"=>"", "f_inclusive"=>{"format"=>["Books"], "subject_topic_facet"=>["History"]}, "sort"=>"author_sort asc, title_sort asc", "search_field"=>"advanced", "commit"=>"Search", "controller"=>"catalog", "action"=>"index"} permitted: false>
AFTER: {"facet.field"=>["format", "subject_topic_facet", "language_facet", "lc_1letter_facet", "subject_geo_facet", "subject_era_facet"], "facet.query"=>[], "facet.pivot"=>["format,language_facet"], "fq"=>["format:(\"Books\")", "subject_topic_facet:(\"History\")"], "hl.fl"=>[], "rows"=>10, "facet"=>true, "f.subject_topic_facet.facet.limit"=>21, "f.language_facet.facet.limit"=>11, "sort"=>"author_sort asc, title_sort asc", "q"=>"_query_:\"{!dismax }baseball basketball\" OR _query_:\"{!dismax spellcheck.dictionary=title qf=$title_qf pf=$title_pf}Kareem Abdul Jabbar\""}
Solr query: get select {"qt"=>nil, "facet.field"=>["format", "subject_topic_facet", "language_facet", "lc_1letter_facet", "subject_geo_facet", "subject_era_facet"], "facet.query"=>[], "facet.pivot"=>["format,language_facet"], "fq"=>["format:(\"Books\")", "subject_topic_facet:(\"History\")"], "hl.fl"=>[], "rows"=>10, "facet"=>true, "f.subject_topic_facet.facet.limit"=>21, "f.language_facet.facet.limit"=>11, "sort"=>"author_sort asc, title_sort asc", "q"=>"_query_:\"{!dismax }baseball basketball\" OR _query_:\"{!dismax spellcheck.dictionary=title qf=$title_qf pf=$title_pf}Kareem Abdul Jabbar\"", "defType"=>"lucene"}
full vanilla query:
BEFORESP:
{"facet.field"=>["format", "subject_topic_facet", "language_facet", "lc_1letter_facet", "subject_geo_facet", "subject_era_facet"],
"facet.query"=>[],
"facet.pivot"=>["format,language_facet"],
"fq"=>[],
"hl.fl"=>[],
"rows"=>10,
"facet"=>true,
"f.subject_topic_facet.facet.limit"=>21,
"f.language_facet.facet.limit"=>11,
"sort"=>"author_sort asc, title_sort asc"}
BEFOREBP:
<ActionController::Parameters
{"utf8"=>"✓",
"op"=>"OR",
"all_fields"=>"baseball basketball",
"title"=>"sports",
"author"=>"Karee Abdul Jabbar",
"subject"=>"biography",
"f_inclusive"=>{"format"=>["Books"], "subject_topic_facet"=>["History"]},
"sort"=>"author_sort asc,
title_sort asc",
"search_field"=>"advanced",
"commit"=>"Search",
"controller"=>"catalog",
"action"=>"index"} permitted: false>
AFTER:
{"facet.field"=>["format", "subject_topic_facet", "language_facet", "lc_1letter_facet", "subject_geo_facet", "subject_era_facet"],
"facet.query"=>[],
"facet.pivot"=>["format,language_facet"],
"fq"=>["format:(\"Books\")", "subject_topic_facet:(\"History\")"],
"hl.fl"=>[],
"rows"=>10,
"facet"=>true,
"f.subject_topic_facet.facet.limit"=>21,
"f.language_facet.facet.limit"=>11,
"sort"=>"author_sort asc, title_sort asc",
"q"=>"_query_:\"{!dismax }baseball basketball\" OR _query_:\"{!dismax spellcheck.dictionary=title qf=$title_qf pf=$title_pf}sports\" OR _query_:\"{!dismax spellcheck.dictionary=author qf=$author_qf pf=$author_pf}Karee Abdul Jabbar\" OR _query_:\"{!dismax spellcheck.dictionary=subject qf=$subject_qf pf=$subject_pf}biography\""}
Solr query:
get select
{"qt"=>nil,
"facet.field"=>["format", "subject_topic_facet", "language_facet", "lc_1letter_facet", "subject_geo_facet", "subject_era_facet"],
"facet.query"=>[],
"facet.pivot"=>["format,language_facet"],
"fq"=>["format:(\"Books\")", "subject_topic_facet:(\"History\")"],
"hl.fl"=>[],
"rows"=>10,
"facet"=>true,
"f.subject_topic_facet.facet.limit"=>21,
"f.language_facet.facet.limit"=>11,
"sort"=>"author_sort asc, title_sort asc",
"q"=>"_query_:\"{!dismax }baseball basketball\" OR _query_:\"{!dismax spellcheck.dictionary=title qf=$title_qf pf=$title_pf}sports\" OR _query_:\"{!dismax spellcheck.dictionary=author qf=$author_qf pf=$author_pf}Karee Abdul Jabbar\" OR _query_:\"{!dismax spellcheck.dictionary=subject qf=$subject_qf pf=$subject_pf}biography\"",
"defType"=>"lucene"}
facets:
Previous | 1 - 10 of 74,961
wo facets:
Previous | 1 - 10 of 326,702
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment