diff --git a/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java b/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java index 2358979995fd1..0d42283282fa3 100644 --- a/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java +++ b/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java @@ -94,6 +94,7 @@ import org.elasticsearch.index.seqno.SequenceNumbers; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.index.shard.ShardLongFieldRange; +import org.elasticsearch.index.shard.ShardSplittingQuery; import org.elasticsearch.index.store.Store; import org.elasticsearch.index.translog.Translog; import org.elasticsearch.index.translog.TranslogConfig; @@ -3610,4 +3611,11 @@ protected long estimateMergeBytes(MergePolicy.OneMerge merge) { return 0L; } } + + public void deleteByQuery(ShardSplittingQuery query) throws Exception { + // System.out.println("Delete documents using ShardSplitQuery"); + indexWriter.deleteDocuments(query); + indexWriter.flush(); + indexWriter.commit(); + } } diff --git a/server/src/main/java/org/elasticsearch/index/shard/ShardSplittingQuery.java b/server/src/main/java/org/elasticsearch/index/shard/ShardSplittingQuery.java index 94a29258f3202..28b63ffff3e66 100644 --- a/server/src/main/java/org/elasticsearch/index/shard/ShardSplittingQuery.java +++ b/server/src/main/java/org/elasticsearch/index/shard/ShardSplittingQuery.java @@ -52,13 +52,13 @@ * It can be used to split a shard into N shards marking every document that doesn't belong into the shard * as deleted. See {@link org.apache.lucene.index.IndexWriter#deleteDocuments(Query...)} */ -final class ShardSplittingQuery extends Query { +public final class ShardSplittingQuery extends Query { private final IndexMetadata indexMetadata; private final IndexRouting indexRouting; private final int shardId; private final BitSetProducer nestedParentBitSetProducer; - ShardSplittingQuery(IndexMetadata indexMetadata, int shardId, boolean hasNested) { + public ShardSplittingQuery(IndexMetadata indexMetadata, int shardId, boolean hasNested) { this.indexMetadata = indexMetadata; this.indexRouting = IndexRouting.fromIndexMetadata(indexMetadata); this.shardId = shardId;