Class NRTCachingDirectory
Wraps a RAMDirectory
around any provided delegate directory, to
be used during NRT search.
This class is likely only useful in a near-real-time
context, where indexing rate is lowish but reopen
rate is highish, resulting in many tiny files being
written. This directory keeps such segments (as well as
the segments produced by merging them, as long as they
are small enough), in RAM.
This is safe to use: when your app calls Commit(),
all cached files will be flushed from the cached and sync'd.
Here's a simple example usage:
Directory fsDir = FSDirectory.Open(new DirectoryInfo("/path/to/index"));
NRTCachingDirectory cachedFSDir = new NRTCachingDirectory(fsDir, 5.0, 60.0);
IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_48, analyzer);
IndexWriter writer = new IndexWriter(cachedFSDir, conf);
This will cache all newly flushed segments, all merges
whose expected segment size is <= 5 MB, unless the net
cached bytes exceeds 60 MB at which point all writes will
not be cached (until the net bytes falls below 60 MB).
This is a Lucene.NET EXPERIMENTAL API, use at your own risk
Inheritance
System.Object
NRTCachingDirectory
Implements
System.IDisposable
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Assembly: Lucene.Net.dll
Syntax
public class NRTCachingDirectory : Directory, IDisposable
Constructors
|
Improve this Doc
View Source
NRTCachingDirectory(Directory, Double, Double)
We will cache a newly created output if 1) it's a
flush or a merge and the estimated size of the merged segment is <=
maxMergeSizeMB, and 2) the total cached bytes is <=
maxCachedMB
Declaration
public NRTCachingDirectory(Directory delegate, double maxMergeSizeMB, double maxCachedMB)
Parameters
Type |
Name |
Description |
Directory |
delegate |
|
System.Double |
maxMergeSizeMB |
|
System.Double |
maxCachedMB |
|
Properties
|
Improve this Doc
View Source
Delegate
Declaration
public virtual Directory Delegate { get; }
Property Value
|
Improve this Doc
View Source
LockFactory
Declaration
public override LockFactory LockFactory { get; }
Property Value
Overrides
Methods
|
Improve this Doc
View Source
ClearLock(String)
Declaration
public override void ClearLock(string name)
Parameters
Type |
Name |
Description |
System.String |
name |
|
Overrides
|
Improve this Doc
View Source
CreateOutput(String, IOContext)
Declaration
public override IndexOutput CreateOutput(string name, IOContext context)
Parameters
Type |
Name |
Description |
System.String |
name |
|
IOContext |
context |
|
Returns
Overrides
|
Improve this Doc
View Source
CreateSlicer(String, IOContext)
Declaration
public override Directory.IndexInputSlicer CreateSlicer(string name, IOContext context)
Parameters
Type |
Name |
Description |
System.String |
name |
|
IOContext |
context |
|
Returns
Overrides
|
Improve this Doc
View Source
DeleteFile(String)
Declaration
public override void DeleteFile(string name)
Parameters
Type |
Name |
Description |
System.String |
name |
|
Overrides
|
Improve this Doc
View Source
Dispose(Boolean)
Dispose this directory, which flushes any cached files
to the delegate and then disposes the delegate.
Declaration
protected override void Dispose(bool disposing)
Parameters
Type |
Name |
Description |
System.Boolean |
disposing |
|
Overrides
|
Improve this Doc
View Source
DoCacheWrite(String, IOContext)
Subclass can override this to customize logic; return
true
if this file should be written to the RAMDirectory.
Declaration
protected virtual bool DoCacheWrite(string name, IOContext context)
Parameters
Type |
Name |
Description |
System.String |
name |
|
IOContext |
context |
|
Returns
Type |
Description |
System.Boolean |
|
|
Improve this Doc
View Source
FileExists(String)
Declaration
[Obsolete("this method will be removed in 5.0")]
public override bool FileExists(string name)
Parameters
Type |
Name |
Description |
System.String |
name |
|
Returns
Type |
Description |
System.Boolean |
|
Overrides
|
Improve this Doc
View Source
FileLength(String)
Declaration
public override long FileLength(string name)
Parameters
Type |
Name |
Description |
System.String |
name |
|
Returns
Type |
Description |
System.Int64 |
|
Overrides
|
Improve this Doc
View Source
GetLockID()
Declaration
public override string GetLockID()
Returns
Type |
Description |
System.String |
|
Overrides
|
Improve this Doc
View Source
GetSizeInBytes()
Returns how many bytes are being used by the
RAMDirectory cache
Declaration
public virtual long GetSizeInBytes()
Returns
Type |
Description |
System.Int64 |
|
|
Improve this Doc
View Source
ListAll()
Declaration
public override string[] ListAll()
Returns
Type |
Description |
System.String[] |
|
Overrides
|
Improve this Doc
View Source
ListCachedFiles()
Declaration
public virtual string[] ListCachedFiles()
Returns
Type |
Description |
System.String[] |
|
|
Improve this Doc
View Source
MakeLock(String)
Declaration
public override Lock MakeLock(string name)
Parameters
Type |
Name |
Description |
System.String |
name |
|
Returns
Overrides
|
Improve this Doc
View Source
OpenInput(String, IOContext)
Declaration
public override IndexInput OpenInput(string name, IOContext context)
Parameters
Type |
Name |
Description |
System.String |
name |
|
IOContext |
context |
|
Returns
Overrides
|
Improve this Doc
View Source
SetLockFactory(LockFactory)
Declaration
public override void SetLockFactory(LockFactory lockFactory)
Parameters
Overrides
|
Improve this Doc
View Source
Sync(ICollection<String>)
Declaration
public override void Sync(ICollection<string> fileNames)
Parameters
Type |
Name |
Description |
System.Collections.Generic.ICollection<System.String> |
fileNames |
|
Overrides
|
Improve this Doc
View Source
ToString()
Declaration
public override string ToString()
Returns
Type |
Description |
System.String |
|
Overrides
Implements
System.IDisposable