Ruby on rails 思考Sphinx分面搜索实现示例?
我正在创建一个存储库类型的rails 3站点。 我已经安装了Thinking Sphinx并在我的网站上运行,因为我可以输入URL,比如Ruby on rails 思考Sphinx分面搜索实现示例?,ruby-on-rails,thinking-sphinx,faceted-search,Ruby On Rails,Thinking Sphinx,Faceted Search,我正在创建一个存储库类型的rails 3站点。 我已经安装了Thinking Sphinx并在我的网站上运行,因为我可以输入URL,比如localhost:3000/articles?search=test&page=2,它将返回预期的结果 我对Rails(以及web开发人员)是新手;我想我可以管理模型和控制器方面的问题,但到目前为止,这些观点让我感到困惑。我有一个侧边栏,我想用作搜索界面。我最接近的例子是(作为侧边栏部分的一部分呈现): :get do%> 搜索方法在我的articles#i
localhost:3000/articles?search=test&page=2
,它将返回预期的结果
我对Rails(以及web开发人员)是新手;我想我可以管理模型和控制器方面的问题,但到目前为止,这些观点让我感到困惑。我有一个侧边栏,我想用作搜索界面。我最接近的例子是(作为侧边栏部分的一部分呈现):
:get do%>
搜索方法在我的articles#index controller中,当我在浏览器指向该页面(路由为/articles
)时对其进行测试时,它会按预期工作,但使用以下奇怪的url:localhost:3000/articles?utf8=✓&搜索=测试&提交=搜索
。当浏览器第一次指向根路径时,不会发生任何事情
因此,我认为这些是我需要解决的主要问题:
@search
替换为文章路径
解决了这个问题)解决将分页
,我以前遇到过问题,但现在似乎正在工作class Product < ActiveRecord::Base {
has_many :categorisations, :dependent => :destroy
has_many :categories, :through => :categorisations
define_index do
indexes product_name,
indexes description
indexes categories(:name), :as => :category,:facet => true
end
}
类产品:销毁
有许多:类别,:到=>:分类
定义索引do
索引产品名称,
索引描述
索引类别(:name),:as=>:category,:facet=>true
结束
}
结果控制员
class ResultsController < ApplicationController
def index
@facets = Product.facets params[:qt], :conditions => {:category => params[:category}},:page => params[:page], :per_page => 20
@products = @facets.for
end
end
class ResultsController{:category=>params[:category}},:page=>params[:page],:per_page=>20
@products=@facets.for
结束
结束
然后在视图中,您可以执行以下操作
<% @facets.each do |facet, facet_options| %>
<span><%= facet %></span>
<ul>
<% facet_options.each do |option, count| %>
<li><%= link_to "#{option} (#{count})",
:params => {facet => option, :page => 1} %></li>
<% end %>
</ul>
<% end %>
- {facet=>option,:page=>1}%>
<% @facets.each do |facet, facet_options| %>
<span><%= facet %></span>
<ul>
<% facet_options.each do |option, count| %>
<li><%= link_to "#{option} (#{count})",
:params => {facet => option, :page => 1} %></li>
<% end %>
</ul>
<% end %>