0

製品とバリエーションの検索を構築しています。1 つの商品に多数のネストされたバリエーションを含めることができます。例: 1 枚の T シャツには 2 つのバリエーションがあり、白が 50 ユーロ、緑が 60 ユーロです。これは同じ製品であり、結果ページに 1 回表示されるはずです。

これは私のマッピングです:

{"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