0

我正在搜索产品和变体。一种产品可以有许多嵌套变体。示例:1 件 T 恤有 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 文档。但这不是我需要的,我需要它来仅计算主要产品文档。

我的查询有什么问题?

4

1 回答 1

1

弄清楚了。在嵌套文档的映射中,我必须添加"include_in_parent" => true

于 2013-10-08T18:23:29.697 回答