2
Railsでelasticsearchを使用して収益で注文し、上位5製品を販売しようとしています。ここでスクリプトによる集計から上位5つ目の結果が得られました
は私のクエリです:
query = {
bool: {
filter: {
bool: {
must: [
{ term: { store_id: store.id } } # Limiting the products by store
]
}
}
}
}
aggs = {
by_revenue: {
terms: {
size: 5,
order: {revenue: "desc"}
},
aggs: {
revenue: {
max: {
script: "doc['price_as_float'].value * doc['quantity'].value"
}
}
}
}
}
response = OrderItem.search(query: query, aggs: aggs, size: 0)
私はエラーにcould not find the appropriate value context to perform aggregation [by_revenue]
感謝を入手します!
これはOrderItemインデックスに含まれているため、商品ごとに1つのフィールドはありません。何かが売却されるたびに収集されます。それで、どのようにして注文すれば、単一の注文の単一の商品から生成されるほとんどの収益によって注文されますか。 –
これで、商品別の集計が欠落しています。私の更新された答えを見てください。 – nemile
あなたは素晴らしいです!私は今朝からこれと闘ってきました。本当にありがとう! –