전자 상거래 웹 사이트에 elasticsearch를 사용하여 패싯 탐색을 작성하려고합니다.resultset에서 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를 좀하고 싶습니다 카테고리 페이지에 있습니다. 따라서 예제의 경우 두 번째 변형 ID (1_b)를 반환하고 싶습니다. 결과 집합에 반환 된 문서의 ID 만 가져옵니다. 중첩 된 객체의 값을 반환하는 방법을 정의 할 수 있습니까?
감사를 검색 할 수있는 독립적 인 문서이기 때문에 그것은 좀 더 많은 유연성을 제공 않습니다 정보 – user1036651