I am trying to parse a timeout parameter to
searchRequest.source().timeout() in Kotlin and run
HighLevelRestClient.search(searchRequest). The timeout interval in my case is set to be 1 ms for testing if the timeout flag works. However, after the execution, I have found
searchResponse.took to be greater than 1 ms while
searchResponse.isTimedOut is always false, which indicates that the timeout parameter does not work in the tasks.
The timeout parameter is set as the following:
val realTimeoutInterval = timeoutInterval ?: DEFAULT_QUERY_TIMEOUT_MS checkNotInTransaction() searchRequest.source().timeout(TimeValue(realTimeoutInterval)) val response = highLevelRestClient.search(searchRequest, options) println(searchRequest.source().timeout()) println(response.isTimedOut) println(response.took) return response
DEFAULT_QUERY_TIMEOUT_MS is Long(1), which is 1ms.
options is empty.
The debug prints show:
1ms false 4ms
which shows that the timeout is set to be 1ms, but the searching task is not timed out even it has executed for 4ms to complete.
Any advise on how to solve this issue? Thanks!