我正嘗試使用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