2017-08-23 5 views
0

私の商品インデックスで、選択した日付から次の15日間と15日間の最も低い価格を希望します。弾性の月最小価格

ESでこの価格を取得するにはどうすればよいですか?どんな種類の質問を書くべきですか?

マイマッピング:事前に

{ 
    "product-data": { 
     "mappings": { 
      "mine-apple": { 
       "properties": {    
       "date": { 
        "type": "date" 
       }, 
       "productName": { 
        "type": "text", 
        "fields": { 
         "keyword": { 
          "type": "keyword", 
          "ignore_above": 256 
         } 
        } 
       }, 
       "productDescription": { 
        "type": "text", 
        "fields": { 
         "keyword": { 
          "type": "keyword", 
          "ignore_above": 256 
         } 
        } 
       },    
       "id": { 
        "type": "text", 
        "fields": { 
         "keyword": { 
          "type": "keyword", 
          "ignore_above": 256 
         } 
        } 
       },            
       "price": { 
        "type": "long" 
       },    
       "query": { 
        "properties": { 
         "match_all": { 
          "type": "object" 
         } 
        } 
       }    
       } 
      } 
     } 
    } 
    } 

感謝。

+0

これまでに何を試みましたか?あなたはどこに苦しんでいますか? –

+0

私は集約について考えました。しかし、それはまた、合計結果の最低価格を与える。しかし、私は毎日最低価格が必要です。私は良いアイデアを見つけることができませんでした。どうすればわかるのですか? – ercvs

+0

コードを教えてください! –

答えて

0

解決策:私は日付ヒストグラムを私のクエリに追加しました。この方法で、私のクエリを日付ヒストグラムでグループ化します。遅くとも最小集計で最低価格を取得します。

{ 
     "query": { 
      "bool": { 
      "must": [ 
       { 
        "range": { 
         "date": { 
         "gte": "2017-05-11", 
         "lte": "2017-05-14" 
         } 
        } 
       } 
      ] 
      } 
     }, 
     "size": 0, 
     "aggs": { 
      "sales_per_month": { 
      "date_histogram": { 
       "format": "YYYY-MM-dd",    
       "field": "date", 
       "interval": "day" 
      }, 
      "aggs": { 
       "sales": { 
        "min": { 
         "field": "price" 
        } 
       } 
      } 
      } 
     } 
    } 
関連する問題