diff --git a/application/src/main/java/run/halo/app/extension/gc/GcSynchronizer.java b/application/src/main/java/run/halo/app/extension/gc/GcSynchronizer.java index bea81ae0a4..7fdeab68b6 100644 --- a/application/src/main/java/run/halo/app/extension/gc/GcSynchronizer.java +++ b/application/src/main/java/run/halo/app/extension/gc/GcSynchronizer.java @@ -1,9 +1,6 @@ package run.halo.app.extension.gc; -import static run.halo.app.extension.Comparators.compareCreationTimestamp; - import java.util.List; -import java.util.function.Predicate; import org.springframework.data.domain.Sort; import run.halo.app.extension.Extension; import run.halo.app.extension.ExtensionClient; @@ -64,8 +61,6 @@ public void start() { if (event instanceof SchemeRegistered registeredEvent) { var newScheme = registeredEvent.getNewScheme(); listDeleted(newScheme.type()).forEach(watcher::onDelete); - client.list(newScheme.type(), deleted(), compareCreationTimestamp(true)) - .forEach(watcher::onDelete); } }); client.watch(watcher); @@ -77,16 +72,8 @@ public void start() { List listDeleted(Class type) { var options = new ListOptions() .setFieldSelector( - FieldSelector.of(QueryFactory.all("metadata.deletionTimestamp")) + FieldSelector.of(QueryFactory.isNotNull("metadata.deletionTimestamp")) ); - return client.listAll(type, options, Sort.by("metadata.creationTimestamp")) - .stream() - .sorted(compareCreationTimestamp(true)) - .toList(); - } - - private Predicate deleted() { - return extension -> extension.getMetadata().getDeletionTimestamp() != null; + return client.listAll(type, options, Sort.by(Sort.Order.asc("metadata.creationTimestamp"))); } - } diff --git a/application/src/main/java/run/halo/app/extension/index/IndexedQueryEngineImpl.java b/application/src/main/java/run/halo/app/extension/index/IndexedQueryEngineImpl.java index ff11f4ca63..b3723fcb80 100644 --- a/application/src/main/java/run/halo/app/extension/index/IndexedQueryEngineImpl.java +++ b/application/src/main/java/run/halo/app/extension/index/IndexedQueryEngineImpl.java @@ -20,7 +20,6 @@ import run.halo.app.extension.ListOptions; import run.halo.app.extension.ListResult; import run.halo.app.extension.PageRequest; -import run.halo.app.extension.index.query.All; import run.halo.app.extension.index.query.QueryIndexViewImpl; import run.halo.app.extension.router.selector.FieldSelector; import run.halo.app.extension.router.selector.LabelSelector; @@ -155,12 +154,13 @@ List doRetrieve(Indexer indexer, ListOptions options, Sort sort) { stopWatch.stop(); stopWatch.start("retrieve matched metadata names"); - var hasLabelSelector = hasLabelSelector(options.getLabelSelector()); - final List matchedByLabels = hasLabelSelector - ? retrieveForLabelMatchers(options.getLabelSelector().getMatchers(), fieldPathEntryMap, - allMetadataNames) - : allMetadataNames; - indexView.removeByIdNotIn(new TreeSet<>(matchedByLabels)); + if (hasLabelSelector(options.getLabelSelector())) { + var matchedByLabels = retrieveForLabelMatchers(options.getLabelSelector().getMatchers(), + fieldPathEntryMap, allMetadataNames); + if (allMetadataNames.size() != matchedByLabels.size()) { + indexView.removeByIdNotIn(new TreeSet<>(matchedByLabels)); + } + } stopWatch.stop(); stopWatch.start("retrieve matched metadata names by fields"); @@ -188,8 +188,6 @@ boolean hasLabelSelector(LabelSelector labelSelector) { } boolean hasFieldSelector(FieldSelector fieldSelector) { - return fieldSelector != null - && fieldSelector.query() != null - && !(fieldSelector.query() instanceof All); + return fieldSelector != null; } }