Package org.apache.lucene.store
Class SimpleFSDirectory
- java.lang.Object
-
- org.apache.lucene.store.Directory
-
- org.apache.lucene.store.BaseDirectory
-
- org.apache.lucene.store.FSDirectory
-
- org.apache.lucene.store.SimpleFSDirectory
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class SimpleFSDirectory extends FSDirectory
A straightforward implementation ofFSDirectory
using java.io.RandomAccessFile. However, this class has poor concurrent performance (multiple threads will bottleneck) as it synchronizes when multiple threads read from the same file. It's usually better to useNIOFSDirectory
orMMapDirectory
instead.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
SimpleFSDirectory.SimpleFSIndexInput
Reads bytes withRandomAccessFile.seek(long)
followed byRandomAccessFile.read(byte[], int, int)
.-
Nested classes/interfaces inherited from class org.apache.lucene.store.FSDirectory
FSDirectory.FSIndexInput, FSDirectory.FSIndexOutput
-
Nested classes/interfaces inherited from class org.apache.lucene.store.Directory
Directory.IndexInputSlicer
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.store.FSDirectory
DEFAULT_READ_CHUNK_SIZE, directory, staleFiles
-
Fields inherited from class org.apache.lucene.store.BaseDirectory
isOpen, lockFactory
-
-
Constructor Summary
Constructors Constructor Description SimpleFSDirectory(File path)
Create a new SimpleFSDirectory for the named location andNativeFSLockFactory
.SimpleFSDirectory(File path, LockFactory lockFactory)
Create a new SimpleFSDirectory for the named location.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Directory.IndexInputSlicer
createSlicer(String name, IOContext context)
Creates anDirectory.IndexInputSlicer
for the given file name.IndexInput
openInput(String name, IOContext context)
Creates an IndexInput for the file with the given name.-
Methods inherited from class org.apache.lucene.store.FSDirectory
close, createOutput, deleteFile, ensureCanWrite, fileExists, fileLength, fsync, getDirectory, getLockID, getReadChunkSize, listAll, listAll, onIndexOutputClosed, open, open, setLockFactory, setReadChunkSize, sync, toString
-
Methods inherited from class org.apache.lucene.store.BaseDirectory
clearLock, ensureOpen, getLockFactory, makeLock
-
-
-
-
Constructor Detail
-
SimpleFSDirectory
public SimpleFSDirectory(File path, LockFactory lockFactory) throws IOException
Create a new SimpleFSDirectory for the named location.- Parameters:
path
- the path of the directorylockFactory
- the lock factory to use, or null for the default (NativeFSLockFactory
);- Throws:
IOException
- if there is a low-level I/O error
-
SimpleFSDirectory
public SimpleFSDirectory(File path) throws IOException
Create a new SimpleFSDirectory for the named location andNativeFSLockFactory
.- Parameters:
path
- the path of the directory- Throws:
IOException
- if there is a low-level I/O error
-
-
Method Detail
-
openInput
public IndexInput openInput(String name, IOContext context) throws IOException
Creates an IndexInput for the file with the given name.- Specified by:
openInput
in classDirectory
- Throws:
IOException
-
createSlicer
public Directory.IndexInputSlicer createSlicer(String name, IOContext context) throws IOException
Description copied from class:Directory
Creates anDirectory.IndexInputSlicer
for the given file name. IndexInputSlicer allows otherDirectory
implementations to efficiently open one or more slicedIndexInput
instances from a single file handle. The underlying file handle is kept open until theDirectory.IndexInputSlicer
is closed.- Must throw
FileNotFoundException
if the file does not exist (notjava.nio.file.NoSuchFileException
of Java 7).- Overrides:
createSlicer
in classDirectory
- Throws:
IOException
- if anIOException
occurs
- Must throw
-
-