mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 13:08:29 +00:00
Cleanup DeleteByQuery code from IndexShard
This commit is contained in:
parent
a805cef045
commit
0f207bf4fb
@ -550,26 +550,6 @@ public class IndexShard extends AbstractIndexShardComponent {
|
|||||||
indexingService.postDelete(delete);
|
indexingService.postDelete(delete);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Engine.DeleteByQuery prepareDeleteByQuery(BytesReference source, @Nullable String[] filteringAliases, Engine.Operation.Origin origin, String... types) {
|
|
||||||
return prepareDeleteByQuery(queryParserService, mapperService, indexAliasesService, indexCache, source, filteringAliases, origin, types);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Engine.DeleteByQuery prepareDeleteByQuery(IndexQueryParserService queryParserService, MapperService mapperService, IndexAliasesService indexAliasesService, IndexCache indexCache, BytesReference source, @Nullable String[] filteringAliases, Engine.Operation.Origin origin, String... types) {
|
|
||||||
long startTime = System.nanoTime();
|
|
||||||
if (types == null) {
|
|
||||||
types = Strings.EMPTY_ARRAY;
|
|
||||||
}
|
|
||||||
Query query = queryParserService.parseQuery(source).query();
|
|
||||||
Query searchFilter = mapperService.searchFilter(types);
|
|
||||||
if (searchFilter != null) {
|
|
||||||
query = Queries.filtered(query, searchFilter);
|
|
||||||
}
|
|
||||||
|
|
||||||
Query aliasFilter = indexAliasesService.aliasFilter(filteringAliases);
|
|
||||||
BitDocIdSetFilter parentFilter = mapperService.hasNested() ? indexCache.bitsetFilterCache().getBitDocIdSetFilter(Queries.newNonNestedFilter()) : null;
|
|
||||||
return new Engine.DeleteByQuery(query, source, filteringAliases, aliasFilter, parentFilter, origin, startTime, types);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Engine.GetResult get(Engine.Get get) {
|
public Engine.GetResult get(Engine.Get get) {
|
||||||
readAllowed();
|
readAllowed();
|
||||||
return engine().get(get);
|
return engine().get(get);
|
||||||
|
@ -18,8 +18,14 @@
|
|||||||
*/
|
*/
|
||||||
package org.elasticsearch.index.shard;
|
package org.elasticsearch.index.shard;
|
||||||
|
|
||||||
|
import org.apache.lucene.search.Query;
|
||||||
|
import org.apache.lucene.search.join.BitDocIdSetFilter;
|
||||||
import org.elasticsearch.ElasticsearchException;
|
import org.elasticsearch.ElasticsearchException;
|
||||||
|
import org.elasticsearch.common.Nullable;
|
||||||
|
import org.elasticsearch.common.Strings;
|
||||||
|
import org.elasticsearch.common.bytes.BytesReference;
|
||||||
import org.elasticsearch.common.collect.Tuple;
|
import org.elasticsearch.common.collect.Tuple;
|
||||||
|
import org.elasticsearch.common.lucene.search.Queries;
|
||||||
import org.elasticsearch.index.aliases.IndexAliasesService;
|
import org.elasticsearch.index.aliases.IndexAliasesService;
|
||||||
import org.elasticsearch.index.cache.IndexCache;
|
import org.elasticsearch.index.cache.IndexCache;
|
||||||
import org.elasticsearch.index.engine.Engine;
|
import org.elasticsearch.index.engine.Engine;
|
||||||
@ -122,7 +128,7 @@ public class TranslogRecoveryPerformer {
|
|||||||
break;
|
break;
|
||||||
case DELETE_BY_QUERY:
|
case DELETE_BY_QUERY:
|
||||||
Translog.DeleteByQuery deleteByQuery = (Translog.DeleteByQuery) operation;
|
Translog.DeleteByQuery deleteByQuery = (Translog.DeleteByQuery) operation;
|
||||||
engine.delete(IndexShard.prepareDeleteByQuery(queryParserService, mapperService, indexAliasesService, indexCache,
|
engine.delete(prepareDeleteByQuery(queryParserService, mapperService, indexAliasesService, indexCache,
|
||||||
deleteByQuery.source(), deleteByQuery.filteringAliases(), Engine.Operation.Origin.RECOVERY, deleteByQuery.types()));
|
deleteByQuery.source(), deleteByQuery.filteringAliases(), Engine.Operation.Origin.RECOVERY, deleteByQuery.types()));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -149,6 +155,22 @@ public class TranslogRecoveryPerformer {
|
|||||||
operationProcessed();
|
operationProcessed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Engine.DeleteByQuery prepareDeleteByQuery(IndexQueryParserService queryParserService, MapperService mapperService, IndexAliasesService indexAliasesService, IndexCache indexCache, BytesReference source, @Nullable String[] filteringAliases, Engine.Operation.Origin origin, String... types) {
|
||||||
|
long startTime = System.nanoTime();
|
||||||
|
if (types == null) {
|
||||||
|
types = Strings.EMPTY_ARRAY;
|
||||||
|
}
|
||||||
|
Query query = queryParserService.parseQuery(source).query();
|
||||||
|
Query searchFilter = mapperService.searchFilter(types);
|
||||||
|
if (searchFilter != null) {
|
||||||
|
query = Queries.filtered(query, searchFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
Query aliasFilter = indexAliasesService.aliasFilter(filteringAliases);
|
||||||
|
BitDocIdSetFilter parentFilter = mapperService.hasNested() ? indexCache.bitsetFilterCache().getBitDocIdSetFilter(Queries.newNonNestedFilter()) : null;
|
||||||
|
return new Engine.DeleteByQuery(query, source, filteringAliases, aliasFilter, parentFilter, origin, startTime, types);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called once for every processed operation by this recovery performer.
|
* Called once for every processed operation by this recovery performer.
|
||||||
* This can be used to get progress information on the translog execution.
|
* This can be used to get progress information on the translog execution.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user