Skip to content

Commit f57660d

Browse files
committed
Remove index creator, executePage now uses .result() to get both entitites and totalRows in a single round trip
1 parent 0894112 commit f57660d

3 files changed

Lines changed: 12 additions & 120 deletions

File tree

src/main/java/org/springframework/data/couchbase/core/index/CouchbasePersistentEntitySearchIndexCreator.java

Lines changed: 0 additions & 116 deletions
This file was deleted.

src/main/java/org/springframework/data/couchbase/repository/query/SearchBasedCouchbaseQuery.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import org.springframework.data.couchbase.core.CouchbaseOperations;
2121
import org.springframework.data.couchbase.core.ExecutableFindBySearchOperation;
22+
import org.springframework.data.couchbase.core.SearchResult;
2223
import org.springframework.data.couchbase.repository.Search;
2324
import org.springframework.data.couchbase.repository.SearchIndex;
2425
import org.springframework.data.domain.PageImpl;
@@ -109,9 +110,8 @@ private Object executeDependingOnType(ParametersParameterAccessor accessor, Sear
109110

110111
private PageImpl<?> executePage(ParametersParameterAccessor accessor, SearchRequest request) {
111112
Pageable pageable = accessor.getPageable();
112-
List<?> content = createQueryOperation(accessor, true).matching(request).all();
113-
long total = createQueryOperation(accessor, false).matching(request).count();
114-
return new PageImpl<>(content, pageable, total);
113+
SearchResult<?> searchResult = createQueryOperation(accessor, true).matching(request).result();
114+
return new PageImpl<>(searchResult.entities(), pageable, searchResult.totalRows());
115115
}
116116

117117
private SliceImpl<?> executeSlice(ParametersParameterAccessor accessor, SearchRequest request) {

src/test/java/org/springframework/data/couchbase/repository/query/SearchBasedCouchbaseQueryTests.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,15 @@ public List<com.couchbase.client.java.search.result.SearchRow> rows() {
325325

326326
@Override
327327
public SearchResult<T> result() {
328-
return new SearchResult<>(values(), Collections.emptyList(), null, Collections.emptyMap());
328+
com.couchbase.client.core.api.search.result.CoreSearchMetrics coreMetrics =
329+
new com.couchbase.client.core.api.search.result.CoreSearchMetrics(
330+
java.time.Duration.ZERO, totalCount, 0.0, 1, 0);
331+
com.couchbase.client.core.api.search.CoreSearchMetaData coreMetaData =
332+
new com.couchbase.client.core.api.search.CoreSearchMetaData(
333+
Collections.emptyMap(), coreMetrics);
334+
com.couchbase.client.java.search.SearchMetaData metaData =
335+
new com.couchbase.client.java.search.SearchMetaData(coreMetaData);
336+
return new SearchResult<>(values(), Collections.emptyList(), metaData, Collections.emptyMap());
329337
}
330338

331339
@Override

0 commit comments

Comments
 (0)