qi6_app/app/controllers/public/search_controller.rb
2019-05-17 12:30:45 +02:00

106 lines
2.7 KiB
Ruby

class Public::SearchController < ApplicationController
layout :get_public_layout
def search
#@lang = LangSite.first
if params[:q].nil? and !@new_site
@articles = []
else
#@articles = Article.search params[:q]
params[:per_page] ||= 10
params[:from] = params[:page].to_i * params[:per_page]
if !@new_site
#params[:q] = "*"
@all = Searchkick.search "#{params[:q]}",
index_name: [Page, Article, PressRelease, VideoFile],
fields: ["title^12", "description^9", "html^8", "category_names^1", "category_ids^1"],
misspellings: false #,
#where: {:document => "rapports"}
#where: {:category_ids => 2, :animals_ids => 2}
else
@doc = true if params[:doc] || params[:press] || params[:media]
if params[:media].to_s != "" and !params[:document]
params[:document] = "video"
end
if params[:press] and !params[:document]
params[:document] = ""
end
if params[:q].to_s == ""
params[:q] = ""
end
@query = params[:q]
if @doc
if params[:media].to_s != ""
index = [VideoFile]
elsif params[:press].to_s != ""
params[:document] = "presse"
index = [PressRelease]
else
index = [DataFile, PressRelease]
end
else
index = [Page, Article, PressRelease, VideoFile, DataFile]
end
fields = ["title^12", "description^9", "html^8", "category_names^1", "animals_names^1", "document^1"]
where = {}
if params[:document] and params[:document] != ""
where[:document] = params[:document]
@query = "*" if @query == ""
end
if params[:animal] and params[:animal] != ""
where[:animals_ids] = params[:animal].to_i
@query = "*" if @query == ""
end
if params[:category] and params[:category] != ""
where[:category_ids] = params[:category].to_i
@query = "*" if @query == ""
end
if where.size == 0 and @query == "" and @doc
@query = "*"
end
@all = Searchkick.search "#{@query}",
index_name: index,
fields: fields,
misspellings: false,
where: where,
order: [{_score: :desc}, {created_at: :desc}]#,
# operator: "or"
end
#query: "*text search terms* AND type:\"blog\" AND status:\"published\""
end
end
end