Rails使用searchkick进行多字段

时间:2014-06-06 13:32:56

标签: ruby-on-rails elasticsearch tire searchkick

我最近在我的网络应用上添加了searchkick,但研究仅适用于名称字段。 我的代码是:

模特:

class Campaign
 [...]

   searchkick language: "French"

 [...]

  def self.search_fields(params)
    @query = "*#{params[:search]}*"
    @search = Campaign.search @query, fields: [:name, :categories, :professional, :brief] , misspellings: {distance: 2}
    @search.results
  end

但是,

@search = Campaign.search @query, fields: [:name, :categories, :professional, :brief] , misspellings: {distance: 2}

该研究仅适用于每个模型的名称。但我想搜索其他字段,如:类别,:专业,:简要,:日期等等。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您应该定义要在模型中索引的字段

class Campaign
  [...]
  def search_data
    {
      name: name,
      categories: categories,
      professional: professional,
      brief: brief
    }
  end
  [...]
end

请记住在上述更改后重新索引此模型。

参考:https://github.com/ankane/searchkick#indexing