From 0e06c47ed7cdc145cbbdca5cde4a8ea921bff7b1 Mon Sep 17 00:00:00 2001 From: Sven Geusens Date: Mon, 20 Jan 2025 14:00:46 +0100 Subject: [PATCH] Regression fix: searcher skip 10k not possible (#17977) * Add new examine lucene option to restore functionality of earlier version * Add reason comment for maxSkipTake --- Directory.Packages.props | 2 +- .../Controllers/Searcher/QuerySearcherController.cs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index d207cb2f8b..bc0a2db4fd 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -45,7 +45,7 @@ - + diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/QuerySearcherController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Searcher/QuerySearcherController.cs index 7f5c545095..f3f7d0acad 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Searcher/QuerySearcherController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Searcher/QuerySearcherController.cs @@ -1,5 +1,6 @@ using Asp.Versioning; using Examine; +using Examine.Lucene.Search; using Examine.Search; using Lucene.Net.QueryParsers.Classic; using Microsoft.AspNetCore.Http; @@ -52,12 +53,13 @@ public class QuerySearcherController : SearcherControllerBase ISearchResults results; // NativeQuery will work for a single word/phrase too (but depends on the implementation) the lucene one will work. + // Due to examine changes we need to supply the skipTakeMaxResults, see https://github.com/umbraco/Umbraco-CMS/issues/17920 for more info try { results = searcher .CreateQuery() .NativeQuery(term) - .Execute(QueryOptions.SkipTake(skip, take)); + .Execute(new LuceneQueryOptions(skip, take, skipTakeMaxResults: skip + take)); } catch (ParseException) {