Package org.apache.lucene.store
Class FileSwitchDirectory
java.lang.Object
org.apache.lucene.store.Directory
org.apache.lucene.store.BaseDirectory
org.apache.lucene.store.FileSwitchDirectory
- All Implemented Interfaces:
Closeable,AutoCloseable
Expert: A Directory instance that switches files between
two other Directory instances.
Files with the specified extensions are placed in the primary directory; others are placed in the secondary directory. The provided Set must not change once passed to this class, and must allow multiple threads to call contains at once.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.store.Directory
Directory.IndexInputSlicer -
Field Summary
Fields inherited from class org.apache.lucene.store.BaseDirectory
isOpen, lockFactory -
Constructor Summary
ConstructorsConstructorDescriptionFileSwitchDirectory(Set<String> primaryExtensions, Directory primaryDir, Directory secondaryDir, boolean doClose) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the store.createOutput(String name, IOContext context) Creates a new, empty file in the directory with the given name.createSlicer(String name, IOContext context) Creates anDirectory.IndexInputSlicerfor the given file name.voiddeleteFile(String name) Removes an existing file in the directory.booleanfileExists(String name) Returns true iff a file with the given name exists.longfileLength(String name) Returns the length of a file in the directory.static StringgetExtension(String name) Utility method to return a file's extension.Return the primary directoryReturn the secondary directoryString[]listAll()Returns an array of strings, one for each file in the directory.Returns a stream reading an existing file, with the specified read buffer size.voidsync(Collection<String> names) Ensure that any writes to these files are moved to stable storage.Methods inherited from class org.apache.lucene.store.BaseDirectory
clearLock, ensureOpen, getLockFactory, makeLock, setLockFactory
-
Constructor Details
-
FileSwitchDirectory
-
-
Method Details
-
getPrimaryDir
Return the primary directory -
getSecondaryDir
Return the secondary directory -
close
Description copied from class:DirectoryCloses the store.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classDirectory- Throws:
IOException
-
listAll
Description copied from class:DirectoryReturns an array of strings, one for each file in the directory.- Specified by:
listAllin classDirectory- Throws:
NoSuchDirectoryException- if the directory is not prepared for any write operations (such asDirectory.createOutput(String, IOContext)).IOException- in case of other IO errors
-
getExtension
Utility method to return a file's extension. -
fileExists
Description copied from class:DirectoryReturns true iff a file with the given name exists.- Specified by:
fileExistsin classDirectory- Throws:
IOException
-
deleteFile
Description copied from class:DirectoryRemoves an existing file in the directory.- Specified by:
deleteFilein classDirectory- Throws:
IOException
-
fileLength
Description copied from class:DirectoryReturns the length of a file in the directory. This method follows the following contract:- Must throw
FileNotFoundExceptionif the file does not exist (notjava.nio.file.NoSuchFileExceptionof Java 7). - Returns a value ≥0 if the file exists, which specifies its length.
- Specified by:
fileLengthin classDirectory- Parameters:
name- the name of the file for which to return the length.- Throws:
IOException- if there was an IO error while retrieving the file's length.
- Must throw
-
createOutput
Description copied from class:DirectoryCreates a new, empty file in the directory with the given name. Returns a stream writing this file.- Specified by:
createOutputin classDirectory- Throws:
IOException
-
sync
Description copied from class:DirectoryEnsure that any writes to these files are moved to stable storage. Lucene uses this to properly commit changes to the index, to prevent a machine/OS crash from corrupting the index.
NOTE: Clients may call this method for same files over and over again, so some impls might optimize for that. For other impls the operation can be a noop, for various reasons.- Specified by:
syncin classDirectory- Throws:
IOException
-
openInput
Description copied from class:DirectoryReturns a stream reading an existing file, with the specified read buffer size. The particular Directory implementation may ignore the buffer size. Currently the only Directory implementations that respect this parameter areFSDirectoryandCompoundFileDirectory.- Must throw
FileNotFoundExceptionif the file does not exist (notjava.nio.file.NoSuchFileExceptionof Java 7).- Specified by:
openInputin classDirectory- Throws:
IOException
- Must throw
-
createSlicer
Description copied from class:DirectoryCreates anDirectory.IndexInputSlicerfor the given file name. IndexInputSlicer allows otherDirectoryimplementations to efficiently open one or more slicedIndexInputinstances from a single file handle. The underlying file handle is kept open until theDirectory.IndexInputSliceris closed.- Must throw
FileNotFoundExceptionif the file does not exist (notjava.nio.file.NoSuchFileExceptionof Java 7).- Overrides:
createSlicerin classDirectory- Throws:
IOException- if anIOExceptionoccurs
- Must throw
-