保存搜索条件rails thinkingsphinx

时间:2010-08-15 19:21:54

标签: ruby-on-rails search sphinx thinking-sphinx

我在我的rails应用程序中使用TS进行全文搜索。我想保存搜索词以在我的应用程序中显示“搜索最多”类型列表。这是我的搜索控制器索引操作。我注意到,通过“保存”搜索功能,搜索大约需要1.28秒而没有大约1.04秒。

几个问题。

1-有更好的方法可以做到这一点,这样我就不会为搜索增加额外的时间吗?

2 - 除了TS或Sphinx的标准最佳实践之外,一般来说加速全文搜索的最佳方法是什么,即有任何类型的缓存或类似的东西吗?

由于

def index
        terms = params[:search_term]
        terms ||= ""
        if params[:city]
            @search_results  = Post.search terms, :conditions => {:city => params[:city]}, :page => params[:page] || 1, :per_page => Constants::LISTINGS_PER_PAGE
        elsif params[:state]
            @search_results  = Post.search terms, :conditions => {:state => params[:state]}, :page => params[:page] || 1, :per_page => Constants::LISTINGS_PER_PAGE
        else
            @search_results  = Post.search terms, :page => params[:page] || 1, :per_page => 3
        end
#        if @search_results.total_entries > 0
#            Search.create(:term => terms)
#        end
        respond_to do |format|
            format.html
            format.js
        end
    end

1 个答案:

答案 0 :(得分:1)

大声思考,也许你可以使用Delayed :: Job来保存搜索词,在幕后。在编译自己的统计数据时,没有人真的应该等待他们的搜索结果,imo。请注意,它只是.280秒,仍然是。

如果您不熟悉,请查看tobi's delayed job on github