我有一个最初返回结果的弹性查询。当我再次尝试使用search_after进行分页查询时,我得到了错误:Cannot use [collapse] in conjunction with [search_after] unless the search is sorted on the same field. Multiple sort fields are not allowed
。就我所知,我只使用了一个字段per_id
进行排序和折叠。我的查询结构是否不正确,或者我需要执行其他操作才能运行此查询?
GET /_search
{
"query": {
"bool": {
"must": [{
"term": {
"pform": "iphone"
}
}]
}
},
"collapse": {
"field": "per_id"
},
"pit": {
"id": "g-ABCDDEFG12345678ABCDDEFG12345678==",
"keep_alive": "5m"
},
"sort": [
{"per_id": "asc"}
],
"search_after" : [
"ABCDDEFG12345678",
123456
]
}
1条答案
按热度按时间gab6jxml1#
我需要在search_after中排除tiebreaker。它不应该导致重复,因为我使用了PIT并对collapse字段进行排序,这意味着我的结果集中不应该存在重复。
因此,我需要删除从上一个结果返回的抢七,然后再将其传递到下一个结果