@Override public DocumentBuilderContainedEntity getDocumentBuilderContainedEntity(IndexedTypeIdentifier entityType) { return documentBuildersContainedEntities.get( entityType ); }
public ClusteredCacheQueryImpl(QueryDefinition queryDefinition, ExecutorService asyncExecutor, AdvancedCache<?, ?> cache, KeyTransformationHandler keyTransformationHandler, IndexedTypeMap<CustomTypeMetadata> metadata) { super(queryDefinition, cache, keyTransformationHandler); if (metadata != null) { this.queryDefinition.setIndexedType(metadata.keySet().iterator().next().getPojoType()); this.queryDefinition.setSortableField(metadata.values().iterator().next().getSortableFields()); } this.invoker = new ClusteredQueryInvoker(cache, asyncExecutor); }
private void removeClassesAlreadyManaged() { Set<Class<?>> remove = new HashSet<Class<?>>(); final IndexedTypeMap<DocumentBuilderContainedEntity> containedEntities = rootFactory.getDocumentBuildersContainedEntities(); final IndexedTypeMap<EntityIndexBinding> indexedEntities = rootFactory.getIndexBindings(); for ( Class<?> entity : classes ) { IndexedTypeIdentifier typeId = PojoIndexedTypeIdentifier.convertFromLegacy( entity ); if ( indexedEntities.containsKey( typeId ) || containedEntities.containsKey( typeId ) ) { remove.add( entity ); } } for ( Class<?> entity : remove ) { classes.remove( entity ); } }
@Override public IndexedTypeDescriptor getIndexedTypeDescriptor(IndexedTypeIdentifier type) { IndexedTypeDescriptor typeDescriptor = indexedTypeDescriptors.get( type ); if ( typeDescriptor == null ) { EntityIndexBinding indexBinder = indexBindingForEntities.get( type ); IndexedTypeDescriptor indexedTypeDescriptor; if ( indexBinder == null ) { indexedTypeDescriptor = new IndexedTypeDescriptorForUnindexedType( type ); } else { indexedTypeDescriptor = new IndexedTypeDescriptorImpl( indexBinder.getDocumentBuilder().getTypeMetadata(), indexBinder.getIndexManagerSelector().all() ); } indexedTypeDescriptors.put( type, indexedTypeDescriptor ); typeDescriptor = indexedTypeDescriptor; } return typeDescriptor; }
if ( allIndexBindings.isEmpty() ) { throw LOG.queryWithNoIndexedType(); queriedIndexBindingsByName = CollectionHelper.newHashMap( allIndexBindings.size() ); for ( Entry<IndexedTypeIdentifier, EntityIndexBinding> entry : allIndexBindings.entrySet() ) { queriedIndexBindingsByName.put( entry.getKey().getName(), entry.getValue() ); queriedIndexBindingsByName = CollectionHelper.newHashMap( indexedTargetedEntities.size() ); for ( IndexedTypeIdentifier type : indexedTargetedEntities ) { EntityIndexBinding entityIndexBinding = allIndexBindings.get( type ); if ( entityIndexBinding == null ) { throw new SearchException( "Not a mapped entity (don't forget to add @Indexed): " + type ); Set<Class<?>> mappedSubclasses = builder.getMappedSubclasses(); for ( Class<?> mappedSubclass : mappedSubclasses ) { queriedIndexBindingsByName.put( mappedSubclass.getName(), allIndexBindings.get( mappedSubclass ) );
Deque<IndexedTypeIdentifier> toFlush = new LinkedList<>(); for (IndexedTypeIdentifier indexedType : searchIntegrator.getIndexBindings().keySet()) { EntityIndexBinding indexBinding = searchIntegrator.getIndexBindings().get(indexedType); MassIndexStrategy strategy = calculateStrategy(indexBinding, cache.getCacheConfiguration()); boolean workerClean = true, workerFlush = true;
@Override public IndexedTypeSet getIndexedTypeIdentifiers() { return indexBindingForEntities.keySet(); }
defaultSimilarity, extendedIntegrator, extendedIntegrator.getIndexBindings().values(), false, false identifiers.add( "providedId" ); Map<String, EntityIndexBinding> targetedEntityBindings = new HashMap<>(); targetedEntityBindings.put( ProvidedIdPerson.class.getName(), extendedIntegrator.getIndexBindings().get( ProvidedIdPerson.class ) ); targetedEntityBindings.put( ProvidedIdPersonSub.class.getName(), extendedIntegrator.getIndexBindings().get( ProvidedIdPersonSub.class ) ); DocumentExtractor extractor = new DocumentExtractorImpl( queryHits, extendedIntegrator, new String[] { "name" },
@Override public void addPurgeAllLuceneWork(String entityClassName) { final IndexedTypeIdentifier fromName = typesRegistry.keyFromName( entityClassName ); results.add( new PurgeAllLuceneWork( fromName ) ); }
@Override public void awaitAsyncProcessingCompletion() { IndexedTypeMap<EntityIndexBinding> indexBindings = integrator.getIndexBindings(); for ( EntityIndexBinding indexBinding : indexBindings.values() ) { for ( IndexManager indexManager : indexBinding.getIndexManagerSelector().all() ) { indexManager.awaitAsyncProcessingCompletion(); } } }
protected final Optional<CustomTypeMetadata> getCustomTypeMetadata(IndexedTypeIdentifier target) { Class<?> targetPojoType = target.getPojoType(); for ( Map.Entry<IndexedTypeIdentifier, CustomTypeMetadata> entry : customTypeMetadata.entrySet() ) { if ( entry.getKey().getPojoType().isAssignableFrom( targetPojoType ) ) { return Optional.of( entry.getValue() ); } } return Optional.empty(); }
public static boolean eventsDisabled(ExtendedSearchIntegrator extendedIntegrator) { if ( extendedIntegrator.getIndexingMode() == IndexingMode.EVENT ) { return extendedIntegrator.getIndexBindings().size() == 0; } else if ( extendedIntegrator.getIndexingMode() == IndexingMode.MANUAL ) { return true; } else { return false; } }
if ( allIndexBindings.isEmpty() ) { throw LOG.queryWithNoIndexedType(); queriedIndexBindingsByName = CollectionHelper.newHashMap( allIndexBindings.size() ); for ( Entry<IndexedTypeIdentifier, EntityIndexBinding> entry : allIndexBindings.entrySet() ) { queriedIndexBindingsByName.put( entry.getKey().getName(), entry.getValue() ); queriedIndexBindingsByName = CollectionHelper.newHashMap( indexedTargetedEntities.size() ); for ( IndexedTypeIdentifier type : indexedTargetedEntities ) { EntityIndexBinding entityIndexBinding = allIndexBindings.get( type ); if ( entityIndexBinding == null ) { throw new SearchException( "Not a mapped entity (don't forget to add @Indexed): " + type ); Set<Class<?>> mappedSubclasses = builder.getMappedSubclasses(); for ( Class<?> mappedSubclass : mappedSubclasses ) { queriedIndexBindingsByName.put( mappedSubclass.getName(), allIndexBindings.get( mappedSubclass ) );
Deque<IndexedTypeIdentifier> toFlush = new LinkedList<>(); for (IndexedTypeIdentifier indexedType : searchIntegrator.getIndexBindings().keySet()) { EntityIndexBinding indexBinding = searchIntegrator.getIndexBindings().get(indexedType); MassIndexStrategy strategy = calculateStrategy(indexBinding, cache.getCacheConfiguration()); boolean workerClean = true, workerFlush = true;
@Override public IndexedTypeSet getIndexedTypeIdentifiers() { return indexBindingForEntities.keySet(); }
@Override public IndexedTypeDescriptor getIndexedTypeDescriptor(IndexedTypeIdentifier type) { IndexedTypeDescriptor typeDescriptor = indexedTypeDescriptors.get( type ); if ( typeDescriptor == null ) { EntityIndexBinding indexBinder = indexBindingForEntities.get( type ); IndexedTypeDescriptor indexedTypeDescriptor; if ( indexBinder == null ) { indexedTypeDescriptor = new IndexedTypeDescriptorForUnindexedType( type ); } else { indexedTypeDescriptor = new IndexedTypeDescriptorImpl( indexBinder.getDocumentBuilder().getTypeMetadata(), indexBinder.getIndexManagerSelector().all() ); } indexedTypeDescriptors.put( type, indexedTypeDescriptor ); typeDescriptor = indexedTypeDescriptor; } return typeDescriptor; }
@Override public void addDeleteByQueryLuceneWork(String entityClassName, DeletionQuery deletionQuery) { final IndexedTypeIdentifier fromName = typesRegistry.keyFromName( entityClassName ); LuceneWork result = new DeleteByQueryLuceneWork( fromName, deletionQuery ); this.results.add( result ); }
@Override public void awaitAsyncProcessingCompletion() { IndexedTypeMap<EntityIndexBinding> indexBindings = integrator.getIndexBindings(); for ( EntityIndexBinding indexBinding : indexBindings.values() ) { for ( IndexManager indexManager : indexBinding.getIndexManagerSelector().all() ) { indexManager.awaitAsyncProcessingCompletion(); } } }