我用超声波在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超声波running时,我还会得到以下错误:配置
Rebuilding configurations for production environment
Available models are Tagtranslation missing: en_US, support, array, two_words_connectorVideo
Generating SQL但我不知道这和这有什么关系。
谢谢你的帮助!
发布于 2010-05-18 17:00:55
我可以通过安装Sphinx0.9.9来解决这个问题,使用以下选项
--prefix=/usr/local/sphinx-> http://www.sphinxsearch.com/docs/current.html#installing
之后,我删除了所有旧索引,重新创建了配置文件,重新创建了索引,并重新启动了ultrasphinx守护进程。
不管怎样,谢谢你。
https://stackoverflow.com/questions/2857493
复制相似问题