1

モデルの色を 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 で不可能な場合、これを達成するための他の「回避策」はありますか?

ありがとう、ミロ

4

0 に答える 0