Tôi đang cố sử dụng bộ lọc truy vấn lồng nhau bên trong tập hợp lồng nhau, bộ lọc. Khi tôi làm như vậy, tập hợp trả về không có mục nào. Nếu tôi thay đổi truy vấn thành một bộ lọc match_all cũ đơn giản, tôi sẽ nhận lại các mục trong nhóm.Truy vấn lồng nhau trong lồng nhau, tập hợp bộ lọc không thành công
Đây là một phiên bản đơn giản của ánh xạ Tôi đang làm việc với:
"player": {
"properties": {
"rating": {
"type": "float"
},
"playerYears": {
"type": "nested",
"properties": {
"schoolsOfInterest": {
"type": "nested",
"properties": {
"name": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
}
Truy vấn này, với một bộ lọc match_all trên việc tổng hợp:
GET /players/_search
{
"size": 0,
"aggs": {
"rating": {
"nested": {
"path": "playerYears"
},
"aggs": {
"rating-filtered": {
"filter": {
"match_all": {}
},
"aggs": {
"rating": {
"histogram": {
"field": "playerYears.rating",
"interval": 1
}
}
}
}
}
}
},
"query": {
"filtered": {
"filter": {
"match_all": {}
}
}
}
}
trả về như sau:
{
"took": 16,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 167316,
"max_score": 0,
"hits": []
},
"aggregations": {
"rating": {
"doc_count": 363550,
"rating-filtered": {
"doc_count": 363550,
"rating": {
"buckets": [
{
"key_as_string": "-1",
"key": -1,
"doc_count": 20978
},
{
"key_as_string": "0",
"key": 0,
"doc_count": 312374
},
{
"key_as_string": "1",
"key": 1,
"doc_count": 1162
},
{
"key_as_string": "2",
"key": 2,
"doc_count": 12104
},
{
"key_as_string": "3",
"key": 3,
"doc_count": 9558
},
{
"key_as_string": "4",
"key": 4,
"doc_count": 5549
},
{
"key_as_string": "5",
"key": 5,
"doc_count": 1825
}
]
}
}
}
}
}
Nhưng truy vấn này có bộ lọc lồng nhau trong tập hợp, trả về một nhóm trống:
GET /players/_search
{
"size": 0,
"aggs": {
"rating": {
"nested": {
"path": "playerYears"
},
"aggs": {
"rating-filtered": {
"filter": {
"nested": {
"query": {
"match_all": {}
},
"path": "playerYears.schoolsOfInterest"
}
},
"aggs": {
"rating": {
"histogram": {
"field": "playerYears.rating",
"interval": 1
}
}
}
}
}
}
},
"query": {
"filtered": {
"filter": {
"match_all": {}
}
}
}
}
xô rỗng:
{
"took": 8,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 167316,
"max_score": 0,
"hits": []
},
"aggregations": {
"rating": {
"doc_count": 363550,
"rating-filtered": {
"doc_count": 0,
"rating": {
"buckets": []
}
}
}
}
}
Có thể sử dụng bộ lọc lồng bên trong lồng nhau, quy tụ lọc? Có một lỗi được biết đến trong elasticsearch về điều này? Bộ lọc lồng nhau hoạt động tốt trong ngữ cảnh truy vấn của tìm kiếm và nó hoạt động tốt nếu tôi không sử dụng tập hợp lồng nhau.
bạn có thể thử phần sau trong tập hợp bộ lọc lồng nhau không? "Aggs": { "giá-lọc": { "bộ lọc": { "lồng": { "bộ lọc": { "match_all": {}} , "con đường": "playerYears.schoolsOfInterest " } }, –
Chỉ là thay đổi từ truy vấn đến bộ lọc? Nếu vậy, tôi đã thử nó, và không có súc sắc. vẫn không có kết quả: ( – Bennidhamma
bạn có thể vui lòng cung cấp một số tài liệu mẫu? –