gpt4 book ai didi

elasticsearch - 如何使用search_after从elasticsearch获取上一页?

转载 作者:行者123 更新时间:2023-12-02 22:43:04 25 4
gpt4 key购买 nike

我正在尝试使用ElasticSearch创建快速分页。我已经阅读了有关search_after运算符的文档page。我了解如何创建“转发”分页。但是在这种情况下,我不知道如何转到上一页。

最佳答案

尽管API以前没有搜索,但是您可以使用此解决方法。

向后移动很容易,我也必须这样做。只需使用您使用的任何语言在变量中跟踪它即可。

我使用指针对搜索进行索引,以跟踪我在数据中的位置。例如:

var $scope.search.display = 0;
var $scope.searchIndex = {};
var data = getElasticSearchQuery() //This is your data from the elastic query
if (!$scope.searchIndex[$scope.search.display + 10] && data.hits.length > 0) {
$scope.searchIndex[$scope.search.display + 10] = data.hits[data.hits.length - 1].sort;
}

如果您具有“下一个”和“上一个”按钮,则在您对 flex 的POST请求中,只需为search_after参数分配正确的索引即可:
$scope.prevButton = function(){
$scope.search.display -= 10;
if($scope.search.display < 10){
$scope.search.searchAfter = null;
}
if($scope.searchIndex[$scope.search.display]){
$scope.search.searchAfter = $scope.searchIndex[$scope.search.display]
}
$scope.sendResults(); //send the post in an elastic search query
};

$scope.nextButton = function() {
$scope.search.display += 10;
if($scope.searchIndex[$scope.search.display]){
$scope.search.searchAfter = $scope.searchIndex[$scope.search.display];
}
$scope.sendResults(); //send the post in an elastic search query
};

那应该让你站起来。 10是我的大小,这意味着我有10个结果分页。

关于elasticsearch - 如何使用search_after从elasticsearch获取上一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40541115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com