有没有办法从模型而不是索引表条目中获取 pg_search 结果?我的代码有效,但我必须遍历结果。
search = PgSearch.multisearch(params[:search])
@items = Array.new
search.find_each do |result|
@items.push(result.searchable)
end
有没有办法从模型而不是索引表条目中获取 pg_search 结果?我的代码有效,但我必须遍历结果。
search = PgSearch.multisearch(params[:search])
@items = Array.new
search.find_each do |result|
@items.push(result.searchable)
end
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)