2010-08-15 8 views
3

J'utilise TS pour la recherche de texte intégral dans mon application rails. J'essaye d'enregistrer le terme de recherche pour présenter la liste de type "la plus recherchée" dans mon application. Voici mon action d'index du contrôleur de recherche. Je remarque qu'avec la fonction "sauvegarder" la recherche prend environ 1,28s et sans elle environ 1,04s.sauvegarder les termes de recherche rails thinkingsphinx

Couple de questions.

1- Y a-t-il une meilleure façon de procéder, de sorte que je n'ajoute pas de temps à la recherche?

2 - En général, quelle est la meilleure façon d'accélérer la recherche en texte intégral en dehors des bonnes pratiques standard de TS ou de Sphinx i.e existe-t-il une sorte de cache ou quelque chose comme ça?

Merci

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 

Répondre

1

Penser à haute voix, peut-être que vous pouvez utiliser Retardé :: Job pour sauver le terme de recherche, dans les coulisses. Personne ne devrait vraiment avoir à attendre leurs résultats de recherche pendant que vous compilez vos propres statistiques, imo. Occupez-vous de seulement 280 secondes.

vérifiez tobi's delayed job on github si vous n'êtes pas familier avec elle.

+0

J'utilise retardé, pas pour ce but cependant. Je n'ai pas encore essayé, mais je me demande si commencer à créer le travail retardé prendrait moins de 0,280 secondes. Ma question était de comprendre les meilleures pratiques générales dans les rails en ce qui concerne la recherche. merci pour votre suggestion! – badnaam