太阳黑子只能搜索表格中的一列

时间:2013-11-22 23:40:17

标签: ruby-on-rails sunspot rails-postgresql sunspot-rails sunspot-solr

我可以按名称搜索客户。

但无法通过电话和电子邮件搜索任何数据。

有什么不对吗?

控制器

@customer = Customer.search do |q|
  ap(params[:customer_query])
  q.keywords params[:customer_query]
end

模型

class Customer < ActiveRecord::Base


  searchable do
    text  :phone    
    text  :name
    text  :email
  end

end

数据表

+-----+----------+------------+------------+-
| id  | name     | email      | phone      | 
+-----+----------+------------+------------+-
| 1   | 林x為   | trinity... | 033151006 |  
| 2   | 林x仁   | percy.r... | 088277137 |  

2 个答案:

答案 0 :(得分:1)

你试过吗

@customer = Customer.search do
  ap(params[:customer_query])
  keywords params[:customer_query]
end.results

答案 1 :(得分:1)

首先,对于您的模型,如果它们是相同类型,则可以排列多个字段。此外,如果您的手机字段不是字符串,则需要将其索引为整数。您可能想尝试这样的事情:

searchable do    
  text  :name, :email
  integer  :phone
end

对于您的控制器,您可能想尝试这样的事情:

@search = Customer.search do 
  fulltext params[:customer_query]
end

@customer = @search.results