Skip to content

Commit 17e6171

Browse files
committed
KCBC-168 FIT performer: honor FTS 'timeout' and 'skip'
Change-Id: Icc0b1d3608b7027008073babd4733ecbc9d79122 Reviewed-on: https://review.couchbase.org/c/couchbase-jvm-clients/+/211226 Tested-by: Build Bot <[email protected]> Reviewed-by: David Nault <[email protected]>
1 parent 35ec27e commit 17e6171

File tree

1 file changed

+15
-0
lines changed
  • kotlin-fit-performer/src/main/kotlin/com/couchbase/client/performer/kotlin/search

1 file changed

+15
-0
lines changed

kotlin-fit-performer/src/main/kotlin/com/couchbase/client/performer/kotlin/search/SearchHelper.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package com.couchbase.client.performer.kotlin.search
1717

1818
import com.couchbase.client.core.error.InvalidArgumentException
1919
import com.couchbase.client.core.util.NanoTimestamp
20+
import com.couchbase.client.kotlin.CommonOptions
2021
import com.couchbase.client.kotlin.Scope
2122
import com.couchbase.client.kotlin.search.DateRange
2223
import com.couchbase.client.kotlin.search.Direction
@@ -32,6 +33,7 @@ import com.couchbase.client.kotlin.search.Mode
3233
import com.couchbase.client.kotlin.search.NumericRange
3334
import com.couchbase.client.kotlin.search.SearchFacet
3435
import com.couchbase.client.kotlin.search.SearchMetadata
36+
import com.couchbase.client.kotlin.search.SearchPage
3537
import com.couchbase.client.kotlin.search.SearchQuery
3638
import com.couchbase.client.kotlin.search.SearchQuery.Companion.MatchOperator
3739
import com.couchbase.client.kotlin.search.SearchResult
@@ -70,6 +72,7 @@ import kotlin.Suppress
7072
import kotlin.TODO
7173
import kotlin.apply
7274
import kotlin.let
75+
import kotlin.time.Duration.Companion.milliseconds
7376
import kotlin.with
7477
import com.couchbase.client.protocol.sdk.Result as FitResult
7578
import 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

Comments
 (0)