我正在使用 Elasticsearch 6.8.2。我正在尝试通过 user_id=1 获得所有中标拍卖。如果我通过 user_id=1 我想获得“拍卖 1”,因为 user_id=1 是最高出价者。我尝试使用 Bucket Selector Aggregation 但由于嵌套的文档类型而无法使其工作。
这是架构和示例数据:
架构:
{
"mappings": {
"_doc": {
"properties": {
"bids": {
"type": "nested"
}
}
}
}
}
数据:
{
"title": "Auction 1",
"price": 50,
"bids": [
{"user_id": 1, "amount": 100},
{"user_id": 2, "amount": 200},
{"user_id": 1, "amount": 300}
]
},{
"title": "Auction 2",
"price": 200,
"bids": [
{"user_id": 3, "amount": 300},
{"user_id": 1, "amount": 400},
{"user_id": 5, "amount": 500}
]
}
到目前为止我得到的查询:
{
"query": {
"bool": {
"must": [
{
"nested": {
"path": "bids",
"query": {
"bool": {
"must": [
{
"terms": {
"bids.user_id": [
1
]
}
}
]
}
}
}
}
]
}
},
"sort": [
{
"price": "desc"
}
]
}
请帮助我,我很绝望。