嵌套分面计数错误



我正在搜索产品和变体。一个产品可以有多个嵌套多属性。示例: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文档。但这不是我需要的,我需要它只计算主要产品文档。

我的查询有什么问题?

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

最新更新