Package org.hibernate.search.indexes.spi

Examples of org.hibernate.search.indexes.spi.IndexManager


    manager.setSimilarity( newSimilarity );
  }

  private IndexManager createDirectoryManager(String indexName, Properties indexProps, Class<?> entity, WorkerBuildContext context) {
    String indexManagerName = indexProps.getProperty( INDEXMANAGER_IMPL_NAME, "transactional" );
    final IndexManager manager;
    if ( StringHelper.isEmpty( indexManagerName ) ) {
      manager = new DirectoryBasedIndexManager();
    }
    else {
      String longName = defaultIndexManagerClasses.get( indexManagerName );
      if ( longName == null ) {
        longName = indexManagerName;
      }
      manager = ClassLoaderHelper.instanceFromName( IndexManager.class, longName,
            IndexManagerHolder.class, "index manager" );
    }
    try {
      manager.initialize( indexName, indexProps, context );
      return manager;
    } catch (Exception e) {
      throw log.unableToInitializeIndexManager( indexName, e );
    }
  }
View Full Code Here


      IndexManagerHolder allIndexesManager = searchFactory.getIndexManagerHolder();
      for (int i = 0; i < expectedShards; i++)
         Assert.assertNotNull(allIndexesManager.getIndexManager("person."+i), "person."+i+" IndexManager missing!");
      Assert.assertNull(allIndexesManager.getIndexManager("person."+expectedShards), "An IndexManager too much was created!");

      IndexManager indexManager = allIndexesManager.getIndexManager("person.0");
      Assert.assertTrue(indexManager instanceof NRTIndexManager);
      NRTIndexManager nrtIM = (NRTIndexManager)indexManager;
      return nrtIM;
   }
View Full Code Here

      super(cacheName);
   }

   @Override
   public Object perform(InvocationContext ctx) throws Throwable {
      IndexManager indexManager = searchFactory.getIndexManagerHolder().getIndexManager(indexName);
      if (indexManager == null) {
         throw new SearchException("Unknown index referenced : " + indexName);
      }
      List<LuceneWork> luceneWorks = indexManager.getSerializer().toLuceneWorks(this.serializedModel);
      List<LuceneWork> workToApply = transformKeysToStrings(luceneWorks);//idInString field is not serialized, we need to extract it from the key object
      indexManager.performOperations(workToApply, null);
      return Boolean.TRUE; //Return value to be ignored
   }
View Full Code Here

      return;
    }
    final ObjectMessage objectMessage = (ObjectMessage) message;
    final String indexName;
    final List<LuceneWork> queue;
    final IndexManager indexManager;
    Session session = getSession();
    SearchFactoryImplementor factory = ContextHelper.getSearchFactory( session );
    try {
      indexName = objectMessage.getStringProperty( Environment.INDEX_NAME_JMS_PROPERTY );
      indexManager = factory.getIndexManagerHolder().getIndexManager( indexName );
      if ( indexManager == null ) {
        log.messageReceivedForUndefinedIndex( indexName );
        return;
      }
      queue = indexManager.getSerializer().toLuceneWorks( (byte[]) objectMessage.getObject() );
      indexManager.performOperations( queue, null );
    }
    catch (JMSException e) {
      log.unableToRetrieveObjectFromMessage( message.getClass(), e );
      return;
    }
View Full Code Here

    String indexName = indexBaseName;
    if ( shardName != null ) {
      indexName += INDEX_SHARD_ID_SEPARATOR + shardName;
    }

    IndexManager indexManager = indexManagersRegistry.get( indexName );
    if ( indexManager != null ) {
      indexManager.addContainedEntity( entityIndexBinding.getDocumentBuilder().getBeanClass() );
      return indexManager;
    }
    SearchFactoryImplementor searchFactory = entityIndexBinding.getSearchFactory();
    WorkerBuildContext context;
    //known implementations of SearchFactory passed are MutableSearchFactory and ImmutableSearchFactory
    if ( WorkerBuildContext.class.isAssignableFrom( searchFactory.getClass() ) ) {
      context = (WorkerBuildContext) searchFactory;
    }
    else {
      throw log.assertionFailureCannotCastToWorkerBuilderContext( searchFactory.getClass() );
    }

    Properties properties = entityIndexBinding.getProperties();
    if ( shardName != null ) {
      properties = new MaskedProperty( properties, shardName, properties );
    }

    indexManager = createIndexManager(
        indexName,
        entityIndexBinding.getDocumentBuilder().getBeanClass(),
        entityIndexBinding.getSimilarity(),
        properties,
        context
    );
    indexManager.setSearchFactory( searchFactory );
    return indexManager;
  }
View Full Code Here

    ServiceManager serviceManager = workerBuildContext.getServiceManager();
    IndexManagerFactory indexManagerFactory = serviceManager.requestService( IndexManagerFactory.class );

    // create IndexManager instance via the index manager factory
    String indexManagerImplementationName = properties.getProperty( Environment.INDEX_MANAGER_IMPL_NAME );
    final IndexManager manager;
    try {
      if ( StringHelper.isEmpty( indexManagerImplementationName ) ) {
        manager = indexManagerFactory.createDefaultIndexManager();
      }
      else {
        manager = indexManagerFactory.createIndexManagerByName( indexManagerImplementationName );
      }
    }
    finally {
      serviceManager.releaseService( IndexManagerFactory.class );
    }

    // init the IndexManager
    try {
      manager.initialize( indexName, properties, indexSimilarity, workerBuildContext );
      return manager;
    }
    catch (Exception e) {
      throw log.unableToInitializeIndexManager( indexName, e );
    }
View Full Code Here

    for ( int index = 0; index < nbrOfIndexManagers; index++ ) {
      String indexManagerName = nbrOfIndexManagers > 1 ?
          indexBaseName + INDEX_SHARD_ID_SEPARATOR + index :
          indexBaseName;
      Properties indexProp = indexProperties[index];
      IndexManager indexManager = indexManagersRegistry.get( indexManagerName );
      if ( indexManager == null ) {
        indexManager = createIndexManager(
            indexManagerName, mappedClass, similarity, indexProp, context
        );
      }
      else {
        if ( !indexManager.getSimilarity().getClass().equals( similarity.getClass() ) ) {
          throw log.getMultipleEntitiesShareIndexWithInconsistentSimilarityException(
              mappedClass.getName(),
              similarity.getClass().getName(),
              indexManager.getContainedTypes().iterator().next().getName(),
              indexManager.getSimilarity().getClass().getName()
          );
        }
        indexManager.addContainedEntity( mappedClass );
      }
      indexManagers[index] = indexManager;
    }
    return indexManagers;
  }
View Full Code Here

  private synchronized IndexManager createIndexManager(String indexManagerName,
      Class<?> mappedClass,
      Similarity similarity,
      Properties indexProperties,
      WorkerBuildContext context) {
    IndexManager indexManager = indexManagersRegistry.get( indexManagerName );
    if ( indexManager == null ) {
      indexManager = createIndexManager(
          indexManagerName,
          similarity,
          indexProperties,
          context
      );
      indexManagersRegistry.put( indexManagerName, indexManager );
    }
    indexManager.addContainedEntity( mappedClass );
    return indexManager;
  }
View Full Code Here

    if ( StringHelper.isEmpty( indexManagerImplementationName ) ) {
      return createDefaultIndexManager();
    }
    else {
      indexManagerImplementationName = indexManagerImplementationName.trim();
      IndexManager indexManager = fromAlias( indexManagerImplementationName );
      if ( indexManager == null ) {
        indexManagerImplementationName = aliasToFQN( indexManagerImplementationName );
        Class<?> indexManagerClass = ClassLoaderHelper.classForName(
            indexManagerImplementationName,
            serviceManager
        );
        indexManager = ClassLoaderHelper.instanceFromClass(
            IndexManager.class,
            indexManagerClass,
            "index manager"
        );
      }
      log.indexManagerAliasResolved( indexManagerImplementationName, indexManager.getClass() );
      return indexManager;
    }
  }
View Full Code Here

    SearchFactory searchFactory = fullTextEntityManager.getSearchFactory();
   
    Directory directory = directoryDAO.findByKey(workListEntity.getKey().getParent());
   
    IndexManager indexManager = getIndexManager(searchFactory, directory.getName());
    LuceneWorkSerializer serializer = indexManager.getSerializer();
    BackendQueueProcessor queueProcessor = createInstanceBackendQueueProcessor(searchFactory, indexManager);
   
    List<LuceneWork> luceneWorks = serializer.toLuceneWorks(workListEntity.getData());
   
    queueProcessor.applyWork(luceneWorks, null);
View Full Code Here

TOP

Related Classes of org.hibernate.search.indexes.spi.IndexManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.