Skip to content

Commit

Permalink
refactor: using indexes to query post lists
Browse files Browse the repository at this point in the history
  • Loading branch information
guqing committed Jan 22, 2024
1 parent 14580b9 commit cc13f0b
Show file tree
Hide file tree
Showing 36 changed files with 526 additions and 1,289 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,7 @@ public static boolean isBaseSnapshot(@NonNull Snapshot snapshot) {
return Boolean.parseBoolean(annotations.get(Snapshot.KEEP_RAW_ANNO));
}

public static String toSubjectRefKey(Ref subjectRef) {
return subjectRef.getGroup() + "/" + subjectRef.getKind() + "/" + subjectRef.getName();
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,26 @@
package run.halo.app.extension.router.selector;

import java.util.Objects;
import org.springframework.lang.NonNull;
import org.springframework.util.Assert;
import run.halo.app.extension.index.query.Query;
import run.halo.app.extension.index.query.QueryFactory;

public record FieldSelector(Query query) {
public record FieldSelector(@NonNull Query query) {
public FieldSelector(Query query) {
this.query = Objects.requireNonNullElseGet(query, QueryFactory::all);
}

public static FieldSelector of(Query query) {
return new FieldSelector(query);
}

public static FieldSelector all() {
return new FieldSelector(QueryFactory.all());
}

public FieldSelector andQuery(Query other) {
Assert.notNull(other, "Query must not be null");
return of(QueryFactory.and(query(), other));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,22 @@ public boolean test(@NonNull Map<String, String> labels) {
.allMatch(matcher -> matcher.test(labels.get(matcher.getKey())));
}

/**
* Returns a new label selector that is the result of ANDing the current selector with the
* given selector.
*
* @param other the selector to AND with
* @return a new label selector
*/
public LabelSelector and(LabelSelector other) {
var labelSelector = new LabelSelector();
var matchers = new ArrayList<SelectorMatcher>();
matchers.addAll(this.matchers);
matchers.addAll(other.matchers);
labelSelector.setMatchers(matchers);
return labelSelector;
}

public static LabelSelectorBuilder builder() {
return new LabelSelectorBuilder();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ public static ListOptions labelAndFieldSelectorToListOptions(
listOptions.setLabelSelector(new LabelSelector().setMatchers(labelMatchers));
if (!fieldQuery.isEmpty()) {
listOptions.setFieldSelector(FieldSelector.of(QueryFactory.and(fieldQuery)));
} else {
listOptions.setFieldSelector(FieldSelector.all());
}
return listOptions;
}
Expand Down
129 changes: 0 additions & 129 deletions application/src/main/java/run/halo/app/content/DefaultIndexer.java

This file was deleted.

79 changes: 0 additions & 79 deletions application/src/main/java/run/halo/app/content/Indexer.java

This file was deleted.

Loading

0 comments on commit cc13f0b

Please sign in to comment.