可以在数组内搜索太阳黑子吗?
我有一个带有数组字段的下一个模型:
Class Invitation include Mongoid::Document include Mongoid::Timestamps::Created include Sunspot::Mongo field :recipients, :type => Array attr_accessible :recipients searchable do text :recipients do recipients.map { |recipient| recipient } end end end
我在我的控制器中:
def recipients @invitation = Invitation.find(params[:id]) @search = Invitation.search do |s| s.fulltext params[:search] s.with(:recipients, @invitation.recipients) end @recipients = @search.results respond_to do |format| format.html end end
这当我重新索引不显示错误但是:
这不适合我 。 我在日志中收到下一个错误:
Sunspot :: UnrecognizedFieldError(没有为名为’recipients’的邀请配置字段):
我也试过了:
string :recipients do recipients.map { |recipient| recipient } end
但是当我重新索引时,我得到了下一个错误:
recipients is not a multiple-value field, so it cannot index values []
我能解决这个问题吗?
Invitation
模型与recipients
有一个has_many
关联。 这意味着invitation
可以有多个recipients
。
所以,试试这个:
string :recipients, :multiple => true do recipients.map { |recipient| recipient } end