【发布时间】:2019-10-24 14:06:00
【问题描述】:
看起来像一个错误。排序非常适合简单的搜索,但不适用于滚动。我尝试这样做:
FieldSortBuilder sortTimeCreated = SortBuilders.fieldSort("meta.time_created").order(SortOrder.ASC);
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withSort(sortTimeCreated)
.withQuery(queryBuilder)
.withFields("meta.time_created")
.withPageable(PageRequest.of(0, 5/*, Sort.Direction.ASC, "meta.time_created"*/)) //was not work
.build();
//searchQuery.addSort(Sort.by("meta.time_created").ascending()); //was not work too(used not together with sortTimeCreated)
然后:
Page<ElasticRecord> search = elasticsearchTemplate.queryForPage(searchQuery, ElasticRecord.class);
Page<ElasticRecord> scroll = elasticsearchTemplate.startScroll(30000, searchQuery, ElasticRecord.class);
运行时,应用程序显示:
- 搜索:
|调试 | os.d.elasticsearch.core.QUERY: 937 | {"from":0,"size":5,"query":{"constant_score":{"filter":{...skipped...},"boost":1.0}},"version":true ,"_source":{"includes":["meta.time_created"],"excludes":[]},"sort":[{"meta.time_created":{"order":"asc"}}]}
- 滚动:
|调试 | os.d.elasticsearch.core.QUERY: 937 | {"from":0,"size":5,"query":{"constant_score":{"filter":{...skipped...},"boost":1.0}},"version":true ,"_source":{"includes":["meta.time_created"],"excludes":[]}}
Spring boot (2.1.5.RELEASE(spring-data-elasticsearch 3.1.8.RELEASE), 2.1.2.RELEASE(spring-data-elasticsearch 3.1.8.RELEASE, 3.1.5.RELEASE 3.1.0.发布)
有什么想法吗?
【问题讨论】:
标签: java spring-boot elasticsearch spring-data spring-data-elasticsearch