我用 id 和 name 为我的模型颜色编制索引,当使用 Searchkick 聚合时,我需要在一个哈希中同时包含 id 和 name 的结果,而不是分开。
如何做到这一点?
这就是它现在的工作方式:
询问
2.1.3 :036 > Product.search("slipy", aggs: ['colors.id','colors.name']).aggs
结果
如您所见,id 和 name 在单独的哈希中,因此关系被破坏。
{"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 无法做到这一点,是否还有其他“解决方法”如何实现这一目标?
谢谢你,米罗