我在我的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
答案 0 :(得分:1)
大声思考,也许你可以使用Delayed :: Job来保存搜索词,在幕后。在编译自己的统计数据时,没有人真的应该等待他们的搜索结果,imo。请注意,它只是.280秒,仍然是。
如果您不熟悉,请查看tobi's delayed job on github。