Package org.hibernate.search.store

Examples of org.hibernate.search.store.DirectoryProvider


      }
    } );
  }

  private long getWorkHashCode(LuceneWorker.WorkWithPayload luceneWork, SearchFactoryImplementor searchFactoryImplementor) {
    DirectoryProvider provider = luceneWork.getProvider();
    int h = provider.getClass().hashCode();
    h = 31 * h + provider.hashCode();
    long extendedHash = h; //to be sure extendedHash + 1 < extendedHash + 2 is always true
    if ( luceneWork.getWork() instanceof AddLuceneWork ) extendedHash+=1; //addwork after deleteWork
    if ( luceneWork.getWork() instanceof OptimizeLuceneWork ) extendedHash+=2; //optimize after everything
    return extendedHash;
  }
View Full Code Here


    tx.commit();

    // Search and the record via Lucene directly
    tx = s.beginTransaction();

    DirectoryProvider directoryProvider = s.getSearchFactory().getDirectoryProviders( SpecialPerson.class )[0];
    ReaderProvider readerProvider = s.getSearchFactory().getReaderProvider();
    IndexReader reader = readerProvider.openReader( directoryProvider );
    IndexSearcher searcher = new IndexSearcher( reader );

    try {
View Full Code Here

    //we cannot use FTQuery because @ProvidedId does not provide the getter id and Hibernate Hsearch Query extension
    //needs it. So we use plain Lucene

    //we know there is only one DP
    DirectoryProvider provider = fullTextSession.getSearchFactory()
        .getDirectoryProviders( ProvidedIdPerson.class )[0];
    IndexSearcher searcher = new IndexSearcher( provider.getDirectory() );
    TopDocs hits = searcher.search( luceneQuery, 1000 );
    searcher.close();
    transaction.commit();
    session.close();
View Full Code Here

    tx.commit();

    // Search and the record via Lucene directly
    tx = s.beginTransaction();

    DirectoryProvider directoryProvider = s.getSearchFactory().getDirectoryProviders( SpecialPerson.class )[0];
    ReaderProvider readerProvider = s.getSearchFactory().getReaderProvider();
    IndexReader reader = readerProvider.openReader( directoryProvider );
    IndexSearcher searcher = new IndexSearcher( reader );

    try {
View Full Code Here

    if ( trace ) {
      log.trace( "Opening IndexReader for directoryProviders: {}", length );
    }

    for ( int index = 0; index < length; index++ ) {
      DirectoryProvider directoryProvider = directoryProviders[index];
      IndexReader reader;
      Lock directoryProviderLock = perDirectoryProviderManipulationLocks.get( directoryProvider );
      if ( trace ) {
        log.trace( "Opening IndexReader from {}", directoryProvider.getDirectory() );
      }
      directoryProviderLock.lock(); //needed for same problem as the double-checked locking
      try {
        reader = activeSearchIndexReaders.get( directoryProvider );
      }
      finally {
        directoryProviderLock.unlock();
      }
      if ( reader == null ) {
        if ( trace ) {
          log.trace( "No shared IndexReader, opening a new one: {}", directoryProvider.getDirectory() );
        }
        reader = replaceActiveReader( null, directoryProviderLock, directoryProvider, readers );
      }
      else {
        boolean isCurrent;
        try {
          isCurrent = reader.isCurrent();
        }
        catch ( IOException e ) {
          throw new SearchException( "Unable to read current status of Lucene IndexReader", e );
        }
        if ( !isCurrent ) {
          if ( trace ) {
            log.trace(
                "Out of date shared IndexReader found, opening a new one: {}",
                directoryProvider.getDirectory()
            );
          }
          IndexReader outOfDateReader = reader;
          reader = replaceActiveReader( outOfDateReader, directoryProviderLock, directoryProvider, readers );
        }
        else {
          if ( trace ) {
            log.trace( "Valid shared IndexReader: {}" + directoryProvider.getDirectory() );
          }
          directoryProviderLock.lock();
          try {
            //read the latest active one, the current one could be out of date and closed already
            //the latest active is guaranteed to be active because it's protected by the dp lock
View Full Code Here

          EntityIndexBinding indexBindingForEntity = searchFactoryImplementor.getIndexBinding( aClass );
          assertNotNull( indexBindingForEntity );
          IndexManager[] indexManagers = indexBindingForEntity.getIndexManagers();
          assertEquals( 1, indexManagers.length );
          DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) indexManagers[0];
          DirectoryProvider directoryProvider = indexManager.getDirectoryProvider();

          if ( !( directoryProvider instanceof RAMDirectoryProvider ) ) {
            // can't use Assertion in a separate thread
            throw new SearchException( "Configuration lost: expected RAM directory" );
          }
View Full Code Here

    FullTextSessionBuilder ftsb = fullTextSessionBuilder.build();
    try {
      SearchFactoryImplementor searchFactory = (SearchFactoryImplementor) ftsb.getSearchFactory();
      EntityIndexBinding indexBindingForEntity = searchFactory.getIndexBinding( SnowStorm.class );
      DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) indexBindingForEntity.getIndexManagers()[0];
      DirectoryProvider directoryProvider = indexManager.getDirectoryProvider();
      Directory directory = directoryProvider.getDirectory();
      LockFactory lockFactory = directory.getLockFactory();
      assertEquals( expectedType, lockFactory.getClass() );
    }
    finally {
      builder.close();
View Full Code Here

    if ( trace ) {
      log.trace( "Opening IndexReader for directoryProviders: {}", length );
    }

    for ( int index = 0; index < length; index++ ) {
      DirectoryProvider directoryProvider = directoryProviders[index];
      IndexReader reader;
      Lock directoryProviderLock = perDirectoryProviderManipulationLocks.get( directoryProvider );
      if ( trace ) {
        log.trace( "Opening IndexReader from {}", directoryProvider.getDirectory() );
      }
      directoryProviderLock.lock(); //needed for same problem as the double-checked locking
      try {
        reader = activeSearchIndexReaders.get( directoryProvider );
      }
      finally {
        directoryProviderLock.unlock();
      }
      if ( reader == null ) {
        if ( trace ) {
          log.trace( "No shared IndexReader, opening a new one: {}", directoryProvider.getDirectory() );
        }
        reader = replaceActiveReader( null, directoryProviderLock, directoryProvider, readers );
      }
      else {
        boolean isCurrent;
        try {
          isCurrent = reader.isCurrent();
        }
        catch ( IOException e ) {
          throw new SearchException( "Unable to read current status of Lucene IndexReader", e );
        }
        if ( !isCurrent ) {
          if ( trace ) {
            log.trace(
                "Out of date shared IndexReader found, opening a new one: {}",
                directoryProvider.getDirectory()
            );
          }
          IndexReader outOfDateReader = reader;
          reader = replaceActiveReader( outOfDateReader, directoryProviderLock, directoryProvider, readers );
        }
        else {
          if ( trace ) {
            log.trace( "Valid shared IndexReader: {}" + directoryProvider.getDirectory() );
          }
          directoryProviderLock.lock();
          try {
            //read the latest active one, the current one could be out of date and closed already
            //the latest active is guaranteed to be active because it's protected by the dp lock
View Full Code Here

    if ( trace ) {
      log.trace( "Opening IndexReader for directoryProviders: {}", length );
    }

    for ( int index = 0; index < length; index++ ) {
      DirectoryProvider directoryProvider = directoryProviders[index];
      IndexReader reader;
      Lock directoryProviderLock = perDirectoryProviderManipulationLocks.get( directoryProvider );
      if ( trace ) {
        log.trace( "Opening IndexReader from {}", directoryProvider.getDirectory() );
      }
      directoryProviderLock.lock(); //needed for same problem as the double-checked locking
      try {
        reader = activeSearchIndexReaders.get( directoryProvider );
      }
      finally {
        directoryProviderLock.unlock();
      }
      if ( reader == null ) {
        if ( trace ) {
          log.trace( "No shared IndexReader, opening a new one: {}", directoryProvider.getDirectory() );
        }
        reader = replaceActiveReader( null, directoryProviderLock, directoryProvider, readers );
      }
      else {
        boolean isCurrent;
        try {
          isCurrent = reader.isCurrent();
        }
        catch ( IOException e ) {
          throw new SearchException( "Unable to read current status of Lucene IndexReader", e );
        }
        if ( !isCurrent ) {
          if ( trace ) {
            log.trace(
                "Out of date shared IndexReader found, opening a new one: {}",
                directoryProvider.getDirectory()
            );
          }
          IndexReader outOfDateReader = reader;
          reader = replaceActiveReader( outOfDateReader, directoryProviderLock, directoryProvider, readers );
        }
        else {
          if ( trace ) {
            log.trace( "Valid shared IndexReader: {}" + directoryProvider.getDirectory() );
          }
          directoryProviderLock.lock();
          try {
            //read the latest active one, the current one could be out of date and closed already
            //the latest active is guaranteed to be active because it's protected by the dp lock
View Full Code Here

          for (DirectoryProvider provider : providers) {
            queueWithFlatDPs.add( new LuceneWorker.WorkWithPayload( work, provider ) );
          }
        }
        else if ( AddLuceneWork.class.isAssignableFrom( work.getClass() ) ) {
          DirectoryProvider provider = shardingStrategy.getDirectoryProviderForAddition(
              work.getEntityClass(),
              work.getId(),
              work.getIdInString(),
              work.getDocument()
          );
View Full Code Here

TOP

Related Classes of org.hibernate.search.store.DirectoryProvider

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.