Ultrasphinx и Rails: совершенно неверные результаты - почему? - PullRequest
0 голосов
/ 18 мая 2010

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

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

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

# 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

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

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

но я не знаю, какое это имеет отношение к этому.

Спасибо за помощь!

1 Ответ

0 голосов
/ 18 мая 2010

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

--prefix=/usr/local/sphinx

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

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

В любом случае, спасибо.

...