2010-05-18 16 views
0

J'utilise Ultrasphinx pour effectuer une recherche sur une application Rails. Tout semble fonctionner, la seule chose est que les résultats de recherche ne correspondent d'aucune façon à la requête de recherche. Je ne comprends vraiment pas ça. J'ai reconstruit mes index et fichiers de configuration plusieurs fois et rien ne semble fonctionner. Lorsque j'effectue une recherche de "test", j'obtiens des résultats sans le mot "test" dans n'importe quelle colonne.Ultrasphinx et Rails: résultats complètement faux - Pourquoi?

Cela ne se produit que sur mon serveur de production. Dans l'environnement de développement tout fonctionne bien.

Je ne sais pas vraiment quelles informations vous fournir, je colle juste mon installation dans les modèles et les contrôleurs

# models/video.rb 

is_indexed :fields => ['title', 'description', 'id'], 
    :concatenate => [{:class_name => 'Tag', 
     :association_sql => "LEFT OUTER JOIN tags_videos ON (videos.id = tags_videos.video_id) LEFT OUTER JOIN tags ON (tags_videos.tag_id = tags.id)", 
     :field => 'name', :as => 'tagstring'}], 
    :order => "videos.created_at DESC", 
    :eagerly_load => [:tags], 
    :delta => true 

# models/tag.rb 

is_indexed :fields => ['name'], 
    :delta => true 


# controllers/searches_controller 

class SearchesController < ApplicationController 

    def search 
    @search_query = (params[:query]) ? params[:query] : nil 
    unless @search_query.nil? 

     # set the search options 
     search_options = {:query => @search_query, 
     :page => (params[:page] || 1), 
     :weights => {'title' => 2.0, 'description' => 1.0, 'tagstring' => 1.0}, 
     :per_page => 40, 
     :class_names => ["Video"], 
     :sort_mode => 'relevance'} 
     @search = Ultrasphinx::Search.new(search_options) 
     Ultrasphinx::Search.client_options['ignore_missing_records'] = true 
     @search.run 
     @videos = @search.results 
    end 
    end 

end 

Je reçois aussi cette erreur lors de l'exécution ultrasphinx rake: configurer

Rebuilding configurations for production environment 
Available models are Tagtranslation missing: en_US, support, array, two_words_connectorVideo 
Generating SQL 

mais je ne sais pas, ce que cela a à voir avec cela.

Merci pour votre aide!

Répondre

0

je pouvais résoudre le problème en installant Sphinx 0.9.9, en utilisant l'option

--prefix=/usr/local/sphinx 

->http://www.sphinxsearch.com/docs/current.html#installing

Après que j'ai enlevé tous les anciens index, recréé le fichier de configuration, recréée l'index et redémarrez le démon d'ultrasphinx.

Merci quand même.