有没有办法从模型中获取pg_search结果而不是索引表条目?我的代码有效,但我必须遍历结果。
search = PgSearch.multisearch(params[:search])
@items = Array.new
search.find_each do |result|
@items.push(result.searchable)
end
答案 0 :(得分:4)
Multisearch将始终返回PgSearch::Document
条记录。
如果您想直接查询模型,可以定义pg_search_scope
,例如:
pg_search_scope :custom_search, :against => [:title] # Can use multiple fields
然后将其与search = Model.custom_search(params[:search])
一起使用,这将返回Model
条记录。
此外,编写上述代码的更简洁方法是:
search = PgSearch.multisearch(params[:search])
@items = search.map(&:searchable)