Ruby on rails 如何索引太阳黑子中一个项目的翻译

Ruby on rails 如何索引太阳黑子中一个项目的翻译,ruby-on-rails,internationalization,solr,sunspot,Ruby On Rails,Internationalization,Solr,Sunspot,我正在使用Sunspot/Solr为我的Rails网站编制索引。我通过执行以下操作为城市名称编制索引: class City < ActiveRecord::Base searchable do text :name ... end ... 因此,基本上每个区域设置都有一个索引列,如title_en和title_fr。我想知道是否有更好的方法?(列太多对我来说很糟糕) 我正在考虑的另一种选择是将一个项目的翻译连接为单个字符串,并将其放在另一个文本索引列中 我还

我正在使用Sunspot/Solr为我的Rails网站编制索引。我通过执行以下操作为城市名称编制索引:

class City < ActiveRecord::Base
  searchable do
    text :name
    ...
  end
  ...
因此,基本上每个区域设置都有一个索引列,如title_en和title_fr。我想知道是否有更好的方法?(列太多对我来说很糟糕)

我正在考虑的另一种选择是将一个项目的翻译连接为单个字符串,并将其放在另一个文本索引列中

我还在想,文本是否有类似于
integer:ids,:multiple=>true的东西


那么,有什么更好的方法来索引相同项目名称的多个翻译版本呢?

我实现了单列语言索引:

LANGUAGES = {
  'en' => 'English',
  'fr' => 'Français'
}

#inside city model

text :name_alt do
  LANGUAGES.keys.reject{|l| l=='en'}.map do |locale|
    read_attribute(:name, locale:locale)
  end
end
这使用Rails I18n模块和Globalize3“read_属性”是Globalize3的一部分

这避免了按语言创建列

我不确定这是更好的方法还是多栏方法

LANGUAGES = {
  'en' => 'English',
  'fr' => 'Français'
}

#inside city model

text :name_alt do
  LANGUAGES.keys.reject{|l| l=='en'}.map do |locale|
    read_attribute(:name, locale:locale)
  end
end