Misc Tools
The misc package has various tools for splitting/merging indices, changing norms, finding high freq terms, and others.NativeUnixDirectory
NOTE: This uses C++ sources (accessible via JNI), which you'll have to compile on your platform.
NativeUnixDirectory
is a Directory implementation that bypasses the
OS's buffer cache (using direct IO) for any IndexInput and IndexOutput
used during merging of segments larger than a specified size (default
10 MB). This avoids evicting hot pages that are still in-use for
searching, keeping search more responsive while large merges run.
See this blog post for details. Steps to build:
- cd lucene/misc/
- To compile NativePosixUtil.cpp -> libNativePosixUtil.so, run ant build-native-unix.
- libNativePosixUtil.so will be located in the lucene/build/native/ folder
- Make sure libNativePosixUtil.so is on your LD_LIBRARY_PATH so java can find it (something like export LD_LIBRARY_PATH=/path/to/dir:$LD_LIBRARY_PATH, where /path/to/dir contains libNativePosixUtil.so)
- ant jar to compile the java source and put that JAR on your CLASSPATH
NativePosixUtil.cpp/java also expose access to the posix_madvise, madvise, posix_fadvise functions, which are somewhat more cross platform than O_DIRECT, however, in testing (see above link), these APIs did not seem to help prevent buffer cache eviction.
Package | Description |
---|---|
org.apache.lucene.document |
Misc extensions of the Document/Field API.
|
org.apache.lucene.index |
Misc index tools and index support.
|
org.apache.lucene.misc |
Miscellaneous index tools.
|
org.apache.lucene.search |
Misc search implementations.
|
org.apache.lucene.search.similarity |
Misc similarity implementations.
|
org.apache.lucene.store |
Misc Directory implementations.
|
org.apache.lucene.util |
Memory Tracker interface which allows defining custom collector
level memory trackers
|
org.apache.lucene.util.fst |
Misc FST classes.
|