elasticsearch,Ruby On Rails,elasticsearch" /> elasticsearch,Ruby On Rails,elasticsearch" />

Ruby on rails 如何使用Rails和ElasticSearch构建嵌套结构?

Ruby on rails 如何使用Rails和ElasticSearch构建嵌套结构?,ruby-on-rails,elasticsearch,Ruby On Rails,elasticsearch,我有一个属于FeatureKey和FeatureValue的特征模型 FeatureKey#name => 'color' FeatureValue#name => 'red' 我想生成一个嵌套的聚合结构来构建购物车过滤器(facet)导航 理想情况下,结构会像 { features: { { key: color, values: [ red, blue, yellow ] }, { key: size, values: [ large, medium, small ]}

我有一个
属于
FeatureKey和FeatureValue的特征模型

FeatureKey#name => 'color'
FeatureValue#name => 'red'
我想生成一个嵌套的聚合结构来构建购物车过滤器(facet)导航

理想情况下,结构会像

{ features: {
  { key: color, values: [ red, blue, yellow ] },
  { key: size, values: [ large, medium, small ]}
}}

有人能建议我如何做到这一点吗?

我目前使用的是:

{  
    "size":1000,
    "fields":[  
        "id",
        "name",
        "price"
    ],
    "query":{  
        "filtered":{  
            "filter":{  
                "bool":{  
                    "must":[  
                        {  
                            "term":{  
                                "categories":4838
                            }
                        }
                    ]
                }
            }
        }
    },
    "aggs":{  
        "price":{  
            "stats":{  
                "field":"price"
            }
        },
        "discounted":{  
            "terms":{  
                "field":"discounted"
            }
        },
        "stock":{  
            "filter":{  
                "range":{  
                    "stock":{  
                        "gt":0
                    }
                }
            }
        },
        "colour":{  
            "terms":{  
                "field":"colour"
            }
        },
        "size":{  
            "terms":{  
                "field":"size"
            }
        }
    }
}
根据需要添加或删除聚合。您很可能希望按类别进行筛选,因此为了简单起见,我将其保留在了中