@@ -17,6 +17,7 @@ package com.couchbase.client.performer.kotlin.search
1717
1818import com.couchbase.client.core.error.InvalidArgumentException
1919import com.couchbase.client.core.util.NanoTimestamp
20+ import com.couchbase.client.kotlin.CommonOptions
2021import com.couchbase.client.kotlin.Scope
2122import com.couchbase.client.kotlin.search.DateRange
2223import com.couchbase.client.kotlin.search.Direction
@@ -32,6 +33,7 @@ import com.couchbase.client.kotlin.search.Mode
3233import com.couchbase.client.kotlin.search.NumericRange
3334import com.couchbase.client.kotlin.search.SearchFacet
3435import com.couchbase.client.kotlin.search.SearchMetadata
36+ import com.couchbase.client.kotlin.search.SearchPage
3537import com.couchbase.client.kotlin.search.SearchQuery
3638import com.couchbase.client.kotlin.search.SearchQuery.Companion.MatchOperator
3739import com.couchbase.client.kotlin.search.SearchResult
@@ -70,6 +72,7 @@ import kotlin.Suppress
7072import kotlin.TODO
7173import kotlin.apply
7274import kotlin.let
75+ import kotlin.time.Duration.Companion.milliseconds
7376import kotlin.with
7477import com.couchbase.client.protocol.sdk.Result as FitResult
7578import com.couchbase.client.protocol.sdk.search.BlockingSearchResult as FitBlockingSearchResult
@@ -151,6 +154,12 @@ private data class SearchParams(
151154 val options : FitSearchOptions ? ,
152155 val fieldsAs : ContentAs ? ,
153156) {
157+ val common: CommonOptions
158+ get() = options?.let { if (it.hasTimeoutMillis()) CommonOptions (timeout = it.timeoutMillis.milliseconds) else null } ? : CommonOptions .Default
159+
160+ val page: SearchPage
161+ get() = options?.let { if (it.hasSkip()) SearchPage .startAt(it.skip) else null } ? : SearchPage .startAt(0 )
162+
154163 val limit: Int?
155164 get() = options?.let { if (it.hasLimit()) it.limit else null }
156165
@@ -254,6 +263,8 @@ class SearchHelper {
254263 scope.search(
255264 indexName = params.indexName,
256265 spec = params.spec,
266+ common = params.common,
267+ page = params.page,
257268 limit = params.limit,
258269 fields = params.fields,
259270 consistency = params.consistency,
@@ -280,6 +291,8 @@ class SearchHelper {
280291 cluster.search(
281292 indexName = params.indexName,
282293 spec = params.spec,
294+ common = params.common,
295+ page = params.page,
283296 limit = params.limit,
284297 fields = params.fields,
285298 consistency = params.consistency,
@@ -292,6 +305,8 @@ class SearchHelper {
292305 cluster.searchQuery(
293306 indexName = params.indexName,
294307 query = params.spec as SearchQuery ,
308+ common = params.common,
309+ page = params.page,
295310 limit = params.limit,
296311 fields = params.fields,
297312 consistency = params.consistency,
0 commit comments