2016-10-21 16 views

答えて

1

Elasticsearchは、それが検索エンジンですので、それは非常に限られたサポート業務(parent-child queries)に参加、正確データベースではありません。

上記のクエリを実行する場合は、スキーマを再作成して1つのインデックスにデータを格納する必要があります(2NF/3NFにない場合でも問題ありません)。たぶん、各製品文書と共にstore_idを索引付けすることができます。

ここで、上記のクエリを実行したい場合は、TERMS aggregationを使用して1つのインデックスを実行します。店舗IDごとにグループ化された商品の数が表示されます。

$ curl -XPOST 'http://localhost:9200/products/_search?search_type=count' -d '{ 
    "query" : { 
     "filtered" : { 
     "filter" : { 
      "bool" : { 
       "must" : [ 
        { "term" : {"product_type" : "sometype"}} 
       ] 
      } 
     } 
     } 
    }, 
    "aggs" : { 
     "products" : { 
      "terms" : { 
       "field" : "store_id" 
      } 
     } 
    } 
}' 
関連する問題