Package org.apache.solr.core
Class StandardDirectoryFactory
- java.lang.Object
-
- org.apache.solr.core.DirectoryFactory
-
- org.apache.solr.core.CachingDirectoryFactory
-
- org.apache.solr.core.StandardDirectoryFactory
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,NamedListInitializedPlugin
- Direct Known Subclasses:
MMapDirectoryFactory
,NIOFSDirectoryFactory
,NRTCachingDirectoryFactory
public class StandardDirectoryFactory extends CachingDirectoryFactory
Directory provider which mimics original SolrFSDirectory
based behavior.File based DirectoryFactory implementations generally extend this class.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.solr.core.CachingDirectoryFactory
CachingDirectoryFactory.CacheValue, CachingDirectoryFactory.CloseListener
-
Nested classes/interfaces inherited from class org.apache.solr.core.DirectoryFactory
DirectoryFactory.DirContext
-
-
Field Summary
-
Fields inherited from class org.apache.solr.core.CachingDirectoryFactory
byDirectoryCache, byPathCache, closeListeners, removeEntries
-
Fields inherited from class org.apache.solr.core.DirectoryFactory
coreContainer, dataHomePath, INDEX_W_TIMESTAMP_REGEX, IOCONTEXT_NO_CACHE, LOCK_TYPE_NATIVE, LOCK_TYPE_NONE, LOCK_TYPE_SIMPLE, LOCK_TYPE_SINGLE
-
-
Constructor Summary
Constructors Constructor Description StandardDirectoryFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.apache.lucene.store.Directory
create(String path, org.apache.lucene.store.LockFactory lockFactory, DirectoryFactory.DirContext dirContext)
Creates a new Directory for a given path.protected org.apache.lucene.store.LockFactory
createLockFactory(String rawLockType)
Creates a new LockFactory for a given path.boolean
isPersistent()
void
move(org.apache.lucene.store.Directory fromDir, org.apache.lucene.store.Directory toDir, String fileName, org.apache.lucene.store.IOContext ioContext)
Override for more efficient moves.String
normalize(String path)
Normalize a given path.protected void
removeDirectory(CachingDirectoryFactory.CacheValue cacheValue)
void
renameWithOverwrite(org.apache.lucene.store.Directory dir, String fileName, String toName)
-
Methods inherited from class org.apache.solr.core.CachingDirectoryFactory
addCloseListener, close, deleteOldIndexDirectory, doneWithDirectory, exists, get, getLivePaths, getPath, incRef, init, release, remove, remove, remove, remove, stripTrailingSlash
-
Methods inherited from class org.apache.solr.core.DirectoryFactory
cleanupOldIndexDirectories, empty, getBaseDir, getDataHome, initCoreContainer, isAbsolute, isSharedStorage, newDefaultUpdateLog, searchersReserveCommitPoints, size, size, sizeOf, sizeOfDirectory
-
-
-
-
Method Detail
-
create
protected org.apache.lucene.store.Directory create(String path, org.apache.lucene.store.LockFactory lockFactory, DirectoryFactory.DirContext dirContext) throws IOException
Description copied from class:DirectoryFactory
Creates a new Directory for a given path.- Specified by:
create
in classDirectoryFactory
- Throws:
IOException
- If there is a low-level I/O error.
-
createLockFactory
protected org.apache.lucene.store.LockFactory createLockFactory(String rawLockType) throws IOException
Description copied from class:DirectoryFactory
Creates a new LockFactory for a given path.- Specified by:
createLockFactory
in classDirectoryFactory
- Parameters:
rawLockType
- A string value as passed in config. Every factory should at least support 'none' to disable locking.- Throws:
IOException
- If there is a low-level I/O error.
-
normalize
public String normalize(String path) throws IOException
Description copied from class:DirectoryFactory
Normalize a given path.- Overrides:
normalize
in classCachingDirectoryFactory
- Parameters:
path
- to normalize- Returns:
- normalized path
- Throws:
IOException
- on io error
-
isPersistent
public boolean isPersistent()
- Specified by:
isPersistent
in classDirectoryFactory
- Returns:
- true if data is kept after close.
-
removeDirectory
protected void removeDirectory(CachingDirectoryFactory.CacheValue cacheValue) throws IOException
- Overrides:
removeDirectory
in classCachingDirectoryFactory
- Throws:
IOException
-
move
public void move(org.apache.lucene.store.Directory fromDir, org.apache.lucene.store.Directory toDir, String fileName, org.apache.lucene.store.IOContext ioContext) throws IOException
Override for more efficient moves.Intended for use with replication - use carefully - some Directory wrappers will cache files for example.
You should first
Directory.sync(java.util.Collection)
any file that will be moved or avoid cached files through settings.- Overrides:
move
in classDirectoryFactory
- Throws:
IOException
- If there is a low-level I/O error.
-
renameWithOverwrite
public void renameWithOverwrite(org.apache.lucene.store.Directory dir, String fileName, String toName) throws IOException
- Overrides:
renameWithOverwrite
in classDirectoryFactory
- Throws:
IOException
-
-