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!