4

如何扩展搜索?
当用户按下搜索按钮时,我想在 users_controllers#index 搜索用户。

现在我有3个模型。

用户 > User_profile > 县

User_profile 具有这些列,例如 user_id 和 prefecture_id。

在Prefecture模型中,它有它的id和名称(Exp: California, New York)

现在我已经像这样设置了models/user.rb。如果我想添加县搜索,我应该添加什么?用户应该能够输入California,并且它会点击搜索。

searchable do 
    text :user_profile_nickname do
        user_profile.nickname
    end

    text :user_profile_introduction do
        user_profile.introduction
    end

    text :tag_list do 
        tag_list
    end 

end
4

1 回答 1

1

每个用户都将作为文档存储在 Solr 中,您需要将预制信息提供给用户文档才能使其可搜索。

尝试:

searchable do 
  text :user_profile_nickname do
    user_profile.nickname
  end

  text :user_profile_introduction do
    user_profile.introduction
  end

  text :tag_list do 
    tag_list
  end

  string :prefacture do
     user_profile.prefacture.name
  end

end

我会使用字符串而不是文本,因为您不需要在 prefacture 上应用诸如词干之类的文本处理。而对于 Sunspot,我认为不可能在文本字段上构建构面。

于 2013-01-14T00:10:43.430 回答