Rails:如何将facet与搜索结果一起使用

时间:2018-01-19 23:14:26

标签: sql ruby-on-rails search facet faceted-search

我有一个rails应用程序,我正在寻找维修店。搜索类方法如下所示:

def self.search(params)
        if params
            repairshop = Repairshop.where(:approved => true)

            if params[:radius].present?
                repairshop = repairshop.near(params[:location], params[:radius]) if params[:location].present?
            else
                repairshop = repairshop.near(params[:location], 200) if params[:location].present?              
            end

            if params[:keywords].present?
                repairshop = repairshop.joins(:specializations).joins(:brands_we_services).where("LOWER(specializations.title) LIKE ? OR LOWER(brands_we_services.title) LIKE ? OR LOWER(repairshop.title) LIKE ?", "%#{params[:keywords].downcase}%", "%#{params[:keywords].downcase}%", "%#{params[:keywords].downcase}%")
            end

            repairshop.uniq
        else
            all
        end

    end

维修店可以有许多专业和品牌_we_services。因此,从其他参数中搜索所有名称非常重要。

搜索表单如下所示: enter image description here

一切正常。搜索控制器将我带到搜索页面。控制器动作如下:

def search
        @repairshops = Repairshop.search(params)
end

搜索结果如下所示:

enter image description here

我的问题是:

在搜索页面的左侧,搜索框下方,我想提供用于过滤结果的构面。我想提供一些动态的方面。喜欢取决于搜索结果,它提供城市的方面(维修店的数量)等。

我不想使用弹性搜索或solr。 我想了解如何从头开始构建动态分面搜索,从搜索结果中构建构面的基础知识

注意:我查看了四个方面,但无法理解如何使用我在维修服务模型中的复杂类方法搜索,并根据文档将其集成到控制器提供的class MovieSearch < FortyFacets::FacetSearch中。

真的很感谢你的帮助。谢谢!

0 个答案:

没有答案