弹性搜索:使用 spring-data-elasticsearch 的连续页面导航在一定限制后结果为空

Elastic Search : Consecutive Page navigation using spring-data-elasticsearch results empty after certain limit

  1. 使用rest-clients /_search?size=100&from=500, 能够获取结果

    同样不适用于以下使用代码的步骤

  2. 使用 spring-data-elasticsearch 和以下代码片段 使用 size=100,from=500,结果为空

    注意:它只成功获取了一次结果,即在创建索引之后

    NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
    
    nativeSearchQueryBuilder.withIndices("indexName");
    nativeSearchQueryBuilder.withTypes("someType");
    nativeSearchQueryBuilder.withPageable(new PageRequest(500, 100));
    SearchQuery searchQuery = nativeSearchQueryBuilder.build();
    elasticsearchTemplate.queryForList(searchQuery,
                className);
    

    我们是否需要在上述代码段中添加任何额外的步骤才能获得所需的结果?

PageRequest constructor不以fromsize为参数,而是pagesize不同,因为pagefrom 不一样。

如果您希望您的页面包含 100 个元素,那么您需要使用 page=5

而不是 from=500
 nativeSearchQueryBuilder.withPageable(new PageRequest(5, 100));