2013-10-06 2 views
0

제품 및 변형 검색을 구축 중입니다. 하나의 제품에는 많은 중첩 된 변형이있을 수 있습니다. 예 : 1 개의 티셔츠는 2 가지 변형이 가능하며 흰색은 50 유로, 녹색은 60 유로입니다. 여전히 동일한 제품이므로 결과 페이지에 한 번 표시해야합니다. 중첩 된 패싯의 개수가 잘못되었습니다.

내 매핑 :

{"product" => { "properties" => {"vendor_variants" => {"type" => "nested"}}}} 

그리고 이것은 내가 뭘 쿼리입니다 :

"query" => { 
    "filtered" => { 
     "query" => { 
     "match_all" => {} 
     }, 
     "filter" => { 
     "bool" => { 
      "must" => [ 
      { 
       "terms" => { 
       "categories" => [122] 
       } 
      } 
      ] 
     } 
     } 
    } 
    }, 
    "facets" => { 
    "brand" => { "terms" => {"field" => "filter_brand"} }, 
    "price_range" => { 
     "nested" => "vendor_variants", 
     "range" => { "field" => "price", "ranges" => [ {"to" => 2000}, {"from" => 2000, "to" => 5000} ] 
     } 
    } 
    } 

이 쿼리는 172 결과를 얻을 수 있습니다. 그러나 가격 범위의 측면은 완전히 잘못되었습니다. 예를 들어 20-50 유로 범위의 경우 422 개의 결과가 반환됩니다. 모든 중첩 된 vendor_variants 문서를 계산하기 때문입니다. 하지만 필요한 제품이 아니기 때문에 주요 제품 문서 만 계산하면됩니다.

내 검색어에 어떤 문제가 있습니까?

답변

1

알아 냈어. 중첩 된 문서의 매핑에서 나는 "include_in_parent" => true

을 추가해야했습니다.
관련 문제