lib/europeana/blacklight/search_builder/more_like_this.rb
# frozen_string_literal: true
module Europeana
module Blacklight
class SearchBuilder
##
# Search builder methods for more like this queries
module MoreLikeThis
extend ActiveSupport::Concern
included do
default_processor_chain.unshift :add_mlt_to_api
end
def add_mlt_to_api(api_parameters)
return unless blacklight_params[:mlt]
repository = blacklight_config.repository_class.new(blacklight_config)
if blacklight_params[:mlt].respond_to?(:more_like_this_query)
doc = blacklight_params[:mlt]
else
doc_response = repository.find(blacklight_params[:mlt])
doc = doc_response.documents.first
end
query = doc.more_like_this_query(blacklight_params[:mltf])
append_to_query_param(api_parameters, query)
end
end
end
end
end