diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-11-05 17:31:10 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-11-05 17:31:10 +0100 |
commit | d41ae481069efb9b8628f928adbf779c445050d0 (patch) | |
tree | 3dc5ed561580cf5a0527976f066430be9dc7322e /clustercontroller-reindexer | |
parent | afdeeb2ab52af526a1225547a9ce469c8e7cbabc (diff) |
Use explicit field set list
Diffstat (limited to 'clustercontroller-reindexer')
-rw-r--r-- | clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java index c668f74f469..420e5258715 100644 --- a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java +++ b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java @@ -4,6 +4,7 @@ package ai.vespa.reindexing; import ai.vespa.reindexing.Reindexing.Status; import ai.vespa.reindexing.ReindexingCurator.ReindexingLockException; import com.yahoo.document.DocumentType; +import com.yahoo.document.Field; import com.yahoo.document.select.parser.ParseException; import com.yahoo.documentapi.DocumentAccess; import com.yahoo.documentapi.ProgressToken; @@ -18,14 +19,17 @@ import java.time.Clock; import java.time.Duration; import java.time.Instant; import java.util.Map; +import java.util.Objects; import java.util.TreeMap; import java.util.logging.Logger; +import java.util.stream.Collectors; import static com.yahoo.documentapi.VisitorControlHandler.CompletionCode.ABORTED; import static java.util.Objects.requireNonNull; import static java.util.logging.Level.FINE; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; +import static java.util.stream.Collectors.joining; /** * Progresses reindexing efforts by creating visitor sessions against its own content cluster, @@ -145,11 +149,11 @@ public class Reindexer { session.destroy(); // If thread is interrupted, this will not wait, but will retain the interrupted flag. } - private VisitorParameters createParameters(DocumentType type, ProgressToken progress) { + VisitorParameters createParameters(DocumentType type, ProgressToken progress) { VisitorParameters parameters = new VisitorParameters(type.getName()); parameters.setRemoteDataHandler(cluster.name()); parameters.setResumeToken(progress); - parameters.setFieldSet(type.getName() + ";[document]"); + parameters.setFieldSet(type.getName() + ":" + type.getFields().stream().map(Field::getName).collect(joining(","))); parameters.setPriority(DocumentProtocol.Priority.LOW_1); parameters.setRoute(cluster.route()); parameters.setBucketSpace(cluster.bucketOf(type)); @@ -182,6 +186,30 @@ public class Reindexer { return requireNonNull(documentBuckets.get(documentType), "Unknown bucket for " + documentType); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Cluster cluster = (Cluster) o; + return name.equals(cluster.name) && + configId.equals(cluster.configId) && + documentBuckets.equals(cluster.documentBuckets); + } + + @Override + public int hashCode() { + return Objects.hash(name, configId, documentBuckets); + } + + @Override + public String toString() { + return "Cluster{" + + "name='" + name + '\'' + + ", configId='" + configId + '\'' + + ", documentBuckets=" + documentBuckets + + '}'; + } + } } |