public static JsonObject fromDeletionQuery(DocumentBuilderIndexedEntity documentBuilder, DeletionQuery deletionQuery) { return fromLuceneQuery( deletionQuery.toLuceneQuery( documentBuilder ) ); }
@Override public void addDeleteByQuery(String entityClassName, DeletionQuery deletionQuery) { int classRef = getClassReference( entityClassName ); GenericRecord deleteByQuery = new GenericData.Record( protocol.getType( "DeleteByQuery" ) ); deleteByQuery.put( "class", classRef ); deleteByQuery.put( "key", deletionQuery.getQueryKey() ); deleteByQuery.put( "query", Arrays.asList( deletionQuery.serialize() ) ); operations.add( deleteByQuery ); }
@Override public void addDeleteByQuery(String entityClassName, DeletionQuery deletionQuery) { int classRef = getClassReference( entityClassName ); GenericRecord deleteByQuery = new GenericData.Record( protocol.getType( "DeleteByQuery" ) ); deleteByQuery.put( "class", classRef ); deleteByQuery.put( "key", deletionQuery.getQueryKey() ); deleteByQuery.put( "query", Arrays.asList( deletionQuery.serialize() ) ); operations.add( deleteByQuery ); }
public static JsonObject fromDeletionQuery(DocumentBuilderIndexedEntity documentBuilder, DeletionQuery deletionQuery) { return fromLuceneQuery( deletionQuery.toLuceneQuery( documentBuilder ) ); }
private void testSerializationForQuery(DeletionQuery deletionQuery) { assertTrue( DeleteByQuerySupport.isSupported( deletionQuery.getClass() ) ); String[] strRep = deletionQuery.serialize(); DeletionQuery copy = DeleteByQuerySupport.fromString( deletionQuery.getQueryKey(), strRep ); assertEquals( deletionQuery, copy ); }
public static JsonObject fromDeletionQuery(DocumentBuilderIndexedEntity metadata, DeletionQuery deletionQuery) { ScopedAnalyzer scopedAnalyzer = (ScopedAnalyzer) metadata.getAnalyzer().unwrap( LuceneAnalyzerReference.class ).getAnalyzer(); return fromLuceneQuery( deletionQuery.toLuceneQuery( scopedAnalyzer ) ); }
@Override public void performWork(LuceneWork work, IndexWriterDelegate delegate, IndexingMonitor monitor) { DeleteByQueryLuceneWork deleteWork = (DeleteByQueryLuceneWork) work; final IndexedTypeIdentifier entityType = work.getEntityType(); final DeletionQuery query = deleteWork.getDeletionQuery(); if ( log.isTraceEnabled() ) { log.tracef( "Removing all %s matching Query: %s", entityType.toString(), query.toString() ); } BooleanQuery.Builder entityDeletionQueryBuilder = new BooleanQuery.Builder(); { Query queryToDelete = query.toLuceneQuery( this.workspace.getDocumentBuilder( entityType ) ); entityDeletionQueryBuilder.add( queryToDelete, BooleanClause.Occur.FILTER ); } Term classNameQueryTerm = new Term( ProjectionConstants.OBJECT_CLASS, entityType.getName() ); TermQuery classNameQuery = new TermQuery( classNameQueryTerm ); entityDeletionQueryBuilder.add( classNameQuery, BooleanClause.Occur.FILTER ); addTenantQueryTerm( work.getTenantId(), entityDeletionQueryBuilder ); try { delegate.deleteDocuments( entityDeletionQueryBuilder.build() ); } catch (IOException e) { SearchException ex = log.unableToDeleteByQuery( entityType, query, e ); throw ex; } this.workspace.notifyWorkApplied( work ); }
@Override public void performWork(LuceneWork work, IndexWriterDelegate delegate, IndexingMonitor monitor) { DeleteByQueryLuceneWork deleteWork = (DeleteByQueryLuceneWork) work; final IndexedTypeIdentifier entityType = work.getEntityType(); final DeletionQuery query = deleteWork.getDeletionQuery(); if ( log.isTraceEnabled() ) { log.tracef( "Removing all %s matching Query: %s", entityType.toString(), query.toString() ); } BooleanQuery.Builder entityDeletionQueryBuilder = new BooleanQuery.Builder(); { Query queryToDelete = query.toLuceneQuery( this.workspace.getDocumentBuilder( entityType ) ); entityDeletionQueryBuilder.add( queryToDelete, BooleanClause.Occur.FILTER ); } Term classNameQueryTerm = new Term( ProjectionConstants.OBJECT_CLASS, entityType.getName() ); TermQuery classNameQuery = new TermQuery( classNameQueryTerm ); entityDeletionQueryBuilder.add( classNameQuery, BooleanClause.Occur.FILTER ); addTenantQueryTerm( work.getTenantId(), entityDeletionQueryBuilder ); try { delegate.deleteDocuments( entityDeletionQueryBuilder.build() ); } catch (IOException e) { SearchException ex = log.unableToDeleteByQuery( entityType, query, e ); throw ex; } this.workspace.notifyWorkApplied( work ); }