in opensearch-notebooks/src/main/kotlin/org/opensearch/notebooks/index/NotebooksIndex.kt [146:172]
fun getAllNotebooks(tenant: String, access: List<String>, from: Int, maxItems: Int): NotebookDetailsSearchResults {
createIndex()
val sourceBuilder = SearchSourceBuilder()
.timeout(TimeValue(PluginSettings.operationTimeoutMs, TimeUnit.MILLISECONDS))
.sort(UPDATED_TIME_FIELD)
.size(maxItems)
.from(from)
val tenantQuery = QueryBuilders.termsQuery(TENANT_FIELD, tenant)
if (access.isNotEmpty()) {
val accessQuery = QueryBuilders.termsQuery(ACCESS_LIST_FIELD, access)
val query = QueryBuilders.boolQuery()
query.filter(tenantQuery)
query.filter(accessQuery)
sourceBuilder.query(query)
} else {
sourceBuilder.query(tenantQuery)
}
val searchRequest = SearchRequest()
.indices(NOTEBOOKS_INDEX_NAME)
.source(sourceBuilder)
val actionFuture = client.search(searchRequest)
val response = actionFuture.actionGet(PluginSettings.operationTimeoutMs)
val result = NotebookDetailsSearchResults(from.toLong(), response)
log.info("$LOG_PREFIX:getAllNotebooks from:$from, maxItems:$maxItems," +
" retCount:${result.objectList.size}, totalCount:${result.totalHits}")
return result
}