モデルの色を ID と名前でインデックス付けします。Searchkick で集計を使用する場合、ID と名前の両方を個別にではなく 1 つのハッシュで結果に含める必要があります。
それを達成する方法は?
これが今の仕組みです:
クエリ
2.1.3 :036 > Product.search("slipy", aggs: ['colors.id','colors.name']).aggs
結果
ご覧のとおり、ID と名前は別のハッシュにあるため、関係が壊れています。
{"colors.name"=>{"doc_count_error_upper_bound"=>0, "sum_other_doc_count"=>0, "buckets"=>[{"key"=>"black", "doc_count"=>149}, {"key"=>"white", "doc_count"=>124}, {"key"=>"blue", "doc_count"=>102}, {"key"=>"red", "doc_count"=>57}, {"key"=>"yellow", "doc_count"=>35}, {"key"=>"grey", "doc_count"=>26}, {"key"=>"turquoise", "doc_count"=>18}, {"key"=>"green", "doc_count"=>17}, {"key"=>"orange", "doc_count"=>8}, {"key"=>"pink", "doc_count"=>8}, {"key"=>"purple", "doc_count"=>3}, {"key"=>"none", "doc_count"=>2}]}, "colors.id"=>{"doc_count_error_upper_bound"=>0, "sum_other_doc_count"=>0, "buckets"=>[{"key"=>2, "doc_count"=>149}, {"key"=>13, "doc_count"=>124}, {"key"=>3, "doc_count"=>102}, {"key"=>4, "doc_count"=>57}, {"key"=>6, "doc_count"=>35}, {"key"=>7, "doc_count"=>26}, {"key"=>10, "doc_count"=>18}, {"key"=>5, "doc_count"=>17}, {"key"=>8, "doc_count"=>8}, {"key"=>9, "doc_count"=>8}, {"key"=>11, "doc_count"=>3}, {"key"=>1, "doc_count"=>2}]}}
これを持つ目的は、バックエンドの ID とフロントエンドの名前が必要なさまざまなフィルターを生成することです。これが searchkick で不可能な場合、これを達成するための他の「回避策」はありますか?
ありがとう、ミロ