我正尝试使用elasticsearch为电子商务网站构建方面导航。在结果集中获取elasticsearch嵌套对象的值
商店产品可以有多个变种。我想到的文档结构如下所示:
PUT /products_test/product/1
{
"id": "1",
"manufacturer": "foobar",
"categories": [
"28554568",
"28554577",
"28554578"
],
"variants": [
{
"id": "1_a",
"color": "blue",
"size": "L"
"price": "67.99"
},
{
"id": "1_b",
"color": "red",
"size": "L"
"price": "69.99"
}
]
}
我将变体定义为嵌套类型。这样,下面的查询将返回包含一个变体相匹配的过滤器的所有文件:
POST /products_test/product/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"and": [
{"term": {"categories": "28554568"}},
{"terms": {
"variants.color": [
"red"
]
}}
]
}
}
}
}
现在,我真的想获得的是,为了显示对产品的变型匹配过滤器的变体的ID在类别页面上。所以在这个例子中,我希望返回第二个变体(1_b)的id。我只获取结果集中返回的文档的id。有没有什么方法可以从嵌套对象中定义一个值,并返回呢?
感谢独立文件信息 – user1036651