2016-04-28 14 views
0

** sellerInfoESのネストされたオファー価格配列(ネストされた配列)オブジェクトに基づいている場合、価格範囲を集計して検索しようとしています。内部フィールドは "offerPrice"です。私はElasticsearchのネストされた配列フィールドに集計を書く方法。私はこの次のクエリを試しましたが、うまくいきません。このエラーを取得:ElasticSearchはネストした範囲集計クエリをどのようにしますか

マッピング:

{ 
    "productsearch": { 
     "mappings": { 
     "product": { 
      "properties": { 
       "brand": { 
        "type": "string" 
       }, 
       "categories": { 
        "type": "string" 
       }, 
       "model": { 
        "type": "string" 
       }, 
       "mrp": { 
        "type": "double" 
       }, 
       "productName": { 
        "type": "string" 
       }, 
       "rating": { 
        "type": "double" 
       }, 
       "reviewCount": { 
        "type": "long" 
       }, 
       "sellerInfoES": { 
        "type": "nested", 
        "properties": { 
        "addr": { 
         "type": "string" 
        }, 
        "country": { 
         "type": "string" 
        }, 
        "geoAddress": { 
         "type": "string" 
        }, 
        "location": { 
         "type": "string" 
        }, 
        "offerPrice": { 
         "type": "double" 
        }, 
        "pinCode": { 
         "type": "string" 
        }, 
        "sellerId": { 
         "type": "long" 
        }, 
        "sellerLocation": { 
         "type": "geo_point" 
        }, 
        "state": { 
         "type": "string" 
        } 
        } 
       }, 
       "sku": { 
        "type": "long" 
       }, 
       "subCategory": { 
        "type": "string" 
       } 
      } 
     } 
     } 
    } 
} 

問合せ:

{ 
    "price_ranges": { 
    "nested": { 
     "path": "sellerInfoES" 
    }, 
    "aggs": { 
     "range": { 
     "field": "offerPrice", 
     "ranges": [ 
      { 
      "gte": 1000 
      }, 
      { 
      "gte": 1000, 
      "lte": 10000 
      }, 
      { 
      "gte": 10000, 
      "lte": 25000 
      }, 
      { 
      "gte": 25000 
      } 
     ] 
     } 
    } 
    } 
} 

答えて

1
:[[ネストされた]と[フィルタ] [price_ranges]で2つの集約型定義が見つかり]失敗を解析

sub_aggregationを使用する必要があります。以下のようnested aggregation内部range aggregationを使用します。

{ 
"aggs": { 
    "nested_sellerInfo": { 
    "nested": { 
     "path": "sellerInfoES" 
    }, 
    "aggs": { 
     "offer_price_range": { 
      "range": { 
       "field": "sellerInfoES.offerPrice", 
       "ranges": [ 
       { 
        "from": 1000 
       }, 
       { 
        "from": 1000, 
        "to": 10000 
       }, 
       { 
        "from": 10000, 
        "to": 25000 
       }, 
       { 
        "from": 25000 
       } 
       ] 
      } 
     } 
     } 
    } 
    } 
    } 

・ホープ、このことができます!

+0

恐ろしく!それは働いている。どうもありがとう ! –

+0

それを受け入れてマークすることができます..:P – Richa

関連する問題