我有一个铁路应用程序,我正在其中搜索维修店。搜索类方法如下所示:
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
维修店可以有许多专业化和品牌服务。因此,搜索除其他参数之外的所有名称非常重要。
The search form looks like this:
一切正常。搜索控制器将我带到搜索页面。控制器动作如下:
def search
@repairshops = Repairshop.search(params)
end
搜索结果如下所示:
我的问题是:
在搜索页面左侧的搜索框下方,我想提供用于过滤结果的方面。我想提供动态的方面。就像根据搜索结果一样,它提供了城市(维修店数量)等方面的信息。
我不想使用弹性搜索或 solr。我想了解如何从头开始构建动态分面搜索,从搜索结果构建分面的基础知识.
注意:我研究了四十个方面,但无法理解如何使用 Repairshop 模型中的复杂类方法搜索并将其集成到class MovieSearch < FortyFacets::FacetSearch
由控制器根据文档提供。
非常感谢您的帮助。谢谢!