Sunspot を使用しているときに、グループによる検索に問題があります。
次に例を示します。
# == Schema Information
#
# Table name: movies
#
# id :integer(4) not null, primary key
# title :string(255)
class Movie < ActiveRecord::Base
has_and_belongs_to_many :actors
searchable do
text :title
integer :ages, multiple: true do
actors.map(&:age)
end
text :names, multiple: true do
actors.map(&:name)
end
end
end
# == Schema Information
#
# Table name: actors
#
# id :integer(4) not null, primary key
# name :string(255)
# age :integer(30)
class Actor < ActiveRecord::Base
has_and_belongs_to_many :movies
searchable do
integer :age
text :name
end
end
30 歳のジョンという俳優が出演するすべての映画を検索します。
Movie.search do
with(:names).equal_to("John")
with(:ages).equal_to(30)
with(:title).equal_to("...")
# ...
end
ここでの問題は、2 人の俳優がいる映画を見つける可能性があることです。1 人はジョンという名前で、もう 1 人は 30 歳でした。映画に 30 歳でジョンという名前の俳優がいることがわかるように、これを何らかの方法でグループ化する方法はありますか?