2010-05-18 4 views
0

Я использую Ultrasphinx для поиска в Rails-приложении. Кажется, что все работает, единственное, что результаты поиска никак не соответствуют поисковому запросу. Я действительно не понимаю этого. Я несколько раз перестраивал свои индексы и файлы конфигурации, и ничего не работает. Когда я выполняю поиск «теста», я возвращаю результаты без слова «тест» в любом столбце.Ultrasphinx and Rails: Полностью неправильные результаты - Почему?

Это происходит только на моем производственном сервере. В среде разработки все работает нормально.

Я не знаю, какую информацию предоставить вам, я просто вставить мою установку в моделях и контроллеры

# 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 

Я также получаю эту ошибку при запуске грабли ultrasphinx: настроить

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

но я не знаю, что это с этим связано.

Благодарим за помощь!

ответ

0

я мог бы решить эту проблему путем установки Sphinx 0.9.9, используя опцию

--prefix=/usr/local/sphinx 

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

После этого я удалил все старые индексы, воссозданный конфигурационный файл, воссозданный индекс и перезапустите демон ultrasphinx.

Спасибо в любом случае.