Ruby on rails 3 rails I18n思考sphinx如何定义索引

Ruby on rails 3 rails I18n思考sphinx如何定义索引,ruby-on-rails-3,search,translation,thinking-sphinx,Ruby On Rails 3,Search,Translation,Thinking Sphinx,我有两个问题。我在使用rails 3.2,并且认为sphinx和我的应用程序是可翻译的。我使用I18n就是为了这个目的。所以你知道我有一个表用户。他们有职业,职业是可翻译的。我定义的索引如下 define_index do indexes occupation, indexes name, ..... ...... has is_active set_property :enable_star => 1 set_property :min_infix

我有两个问题。我在使用rails 3.2,并且认为sphinx和我的应用程序是可翻译的。我使用I18n就是为了这个目的。所以你知道我有一个表用户。他们有职业,职业是可翻译的。我定义的索引如下

define_index do
  indexes occupation, 
  indexes name, 
  .....
  ......
  has is_active    
  set_property :enable_star => 1
  set_property :min_infix_len => 3
 end
现在我不确定如何为职业的翻译编制索引。其次,我想优先搜索职业,这样它会比名称更优先考虑职业。
提前感谢您。

您可以使用
translations.field\u name
为翻译编制索引。在您的情况下,您必须执行
translations.occulation
将其添加到搜索索引中。对于第二种需要,您必须设置字段权重。按照以下编辑的代码进行操作:

  define_index do
  indexes translations.occupation, :as => :occupation
  indexes name, :as => :name
  .....
  ......
  has is_active    
  set_property :enable_star => 1
  set_property :min_infix_len => 3
  set_property :field_weights => {
    :occupation => 2,
    :name => 1,        
}
end

您可以使用
translations.field\u name
为翻译编制索引。在您的情况下,您必须执行
translations.occulation
将其添加到搜索索引中。第二种需要是设置字段权重。按照以下编辑的代码进行操作:

  define_index do
  indexes translations.occupation, :as => :occupation
  indexes name, :as => :name
  .....
  ......
  has is_active    
  set_property :enable_star => 1
  set_property :min_infix_len => 3
  set_property :field_weights => {
    :occupation => 2,
    :name => 1,        
}
end