org.apache.lucene.store

Class FSDirectory

public class FSDirectory extends Directory

Straightforward implementation of Directory as a directory of files. Locking implementation is by default the SimpleFSLockFactory, but can be changed either by passing in a LockFactory instance to getDirectory, or specifying the LockFactory class by setting org.apache.lucene.store.FSDirectoryLockFactoryClass Java system property, or by calling FSDirectory after creating the Directory.

Directories are cached, so that, for a given canonical path, the same FSDirectory instance will always be returned by getDirectory. This permits synchronization on directories.

Author: Doug Cutting

See Also: Directory

Nested Class Summary
protected static classFSDirectory.FSIndexInput
protected static classFSDirectory.FSIndexOutput
Field Summary
static StringLOCK_DIR
Directory specified by org.apache.lucene.lockDir or java.io.tmpdir system property.
Constructor Summary
protected FSDirectory()
Method Summary
voidclose()
Closes the store to future operations.
IndexOutputcreateOutput(String name)
Creates a new, empty file in the directory with the given 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 in bytes of a file in the directory.
longfileModified(String name)
Returns the time the named file was last modified.
static longfileModified(File directory, String name)
Returns the time the named file was last modified.
static FSDirectorygetDirectory(String path)
Returns the directory instance for the named location.
static FSDirectorygetDirectory(String path, LockFactory lockFactory)
Returns the directory instance for the named location.
static FSDirectorygetDirectory(File file)
Returns the directory instance for the named location.
static FSDirectorygetDirectory(File file, LockFactory lockFactory)
Returns the directory instance for the named location.
static FSDirectorygetDirectory(String path, boolean create)
Returns the directory instance for the named location.
static FSDirectorygetDirectory(File file, boolean create)
Returns the directory instance for the named location.
static booleangetDisableLocks()
Returns whether Lucene's use of lock files is disabled.
FilegetFile()
StringgetLockID()
String[]list()
Returns an array of strings, one for each Lucene index file in the directory.
IndexInputopenInput(String name)
IndexInputopenInput(String name, int bufferSize)
voidrenameFile(String from, String to)
Renames an existing file in the directory.
static voidsetDisableLocks(boolean doDisableLocks)
Set whether Lucene's use of lock files is disabled.
StringtoString()
For debug output.
voidtouchFile(String name)
Set the modified time of an existing file to now.

Field Detail

LOCK_DIR

public static final String LOCK_DIR

Deprecated: As of 2.1, LOCK_DIR is unused because the write.lock is now stored by default in the index directory. If you really want to store locks elsewhere you can create your own SimpleFSLockFactory (or NativeFSLockFactory, etc.) passing in your preferred lock directory. Then, pass this LockFactory instance to one of the getDirectory methods that take a lockFactory (for example, FSDirectory).

Directory specified by org.apache.lucene.lockDir or java.io.tmpdir system property.

Constructor Detail

FSDirectory

protected FSDirectory()

Method Detail

close

public void close()
Closes the store to future operations.

createOutput

public IndexOutput createOutput(String name)
Creates a new, empty file in the directory with the given name. Returns a stream writing this file.

deleteFile

public void deleteFile(String name)
Removes an existing file in the directory.

fileExists

public boolean fileExists(String name)
Returns true iff a file with the given name exists.

fileLength

public long fileLength(String name)
Returns the length in bytes of a file in the directory.

fileModified

public long fileModified(String name)
Returns the time the named file was last modified.

fileModified

public static long fileModified(File directory, String name)
Returns the time the named file was last modified.

getDirectory

public static FSDirectory getDirectory(String path)
Returns the directory instance for the named location.

Parameters: path the path to the directory.

Returns: the FSDirectory for the named file.

getDirectory

public static FSDirectory getDirectory(String path, LockFactory lockFactory)
Returns the directory instance for the named location.

Parameters: path the path to the directory. lockFactory instance of LockFactory providing the locking implementation.

Returns: the FSDirectory for the named file.

getDirectory

public static FSDirectory getDirectory(File file)
Returns the directory instance for the named location.

Parameters: file the path to the directory.

Returns: the FSDirectory for the named file.

getDirectory

public static FSDirectory getDirectory(File file, LockFactory lockFactory)
Returns the directory instance for the named location.

Parameters: file the path to the directory. lockFactory instance of LockFactory providing the locking implementation.

Returns: the FSDirectory for the named file.

getDirectory

public static FSDirectory getDirectory(String path, boolean create)

Deprecated: Use IndexWriter's create flag, instead, to create a new index.

Returns the directory instance for the named location.

Parameters: path the path to the directory. create if true, create, or erase any existing contents.

Returns: the FSDirectory for the named file.

getDirectory

public static FSDirectory getDirectory(File file, boolean create)

Deprecated: Use IndexWriter's create flag, instead, to create a new index.

Returns the directory instance for the named location.

Parameters: file the path to the directory. create if true, create, or erase any existing contents.

Returns: the FSDirectory for the named file.

getDisableLocks

public static boolean getDisableLocks()
Returns whether Lucene's use of lock files is disabled.

Returns: true if locks are disabled, false if locks are enabled.

getFile

public File getFile()

getLockID

public String getLockID()

list

public String[] list()
Returns an array of strings, one for each Lucene index file in the directory.

openInput

public IndexInput openInput(String name)

openInput

public IndexInput openInput(String name, int bufferSize)

renameFile

public void renameFile(String from, String to)

Deprecated:

Renames an existing file in the directory. Warning: This is not atomic.

setDisableLocks

public static void setDisableLocks(boolean doDisableLocks)
Set whether Lucene's use of lock files is disabled. By default, lock files are enabled. They should only be disabled if the index is on a read-only medium like a CD-ROM.

toString

public String toString()
For debug output.

touchFile

public void touchFile(String name)
Set the modified time of an existing file to now.
Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.