|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.lucene.index.CheckIndex
public class CheckIndex
Basic tool and API to check the health of an index and write a new segments file that removes reference to problematic segments.
As this tool checks every byte in the index, on a large index it can take quite a long time to run.
WARNING: this tool and API is new and experimental and is subject to suddenly change in the next release. Please make a complete backup of your index before using this to fix your index!
Nested Class Summary | |
---|---|
static class |
CheckIndex.Status
Returned from checkIndex() detailing the health and status of the index. |
Constructor Summary | |
---|---|
CheckIndex(Directory dir)
Create a new CheckIndex on the directory. |
Method Summary | |
---|---|
CheckIndex.Status |
checkIndex()
Returns a CheckIndex.Status instance detailing
the state of the index. |
CheckIndex.Status |
checkIndex(List<String> onlySegments)
Returns a CheckIndex.Status instance detailing
the state of the index. |
void |
fixIndex(CheckIndex.Status result)
Repairs the index using previously returned result from checkIndex() . |
static void |
main(String[] args)
Command-line interface to check and fix an index. |
void |
setInfoStream(PrintStream out)
Set infoStream where messages should go. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public CheckIndex(Directory dir)
Method Detail |
---|
public void setInfoStream(PrintStream out)
public CheckIndex.Status checkIndex() throws IOException
CheckIndex.Status
instance detailing
the state of the index.
As this method checks every byte in the index, on a large index it can take quite a long time to run.
WARNING: make sure you only call this when the index is not opened by any writer.
IOException
public CheckIndex.Status checkIndex(List<String> onlySegments) throws IOException
CheckIndex.Status
instance detailing
the state of the index.
onlySegments
- list of specific segment names to check
As this method checks every byte in the specified segments, on a large index it can take quite a long time to run.
WARNING: make sure you only call this when the index is not opened by any writer.
IOException
public void fixIndex(CheckIndex.Status result) throws IOException
checkIndex()
. Note that this does not
remove any of the unreferenced files after it's done;
you must separately open an IndexWriter
, which
deletes unreferenced files when it's created.
WARNING: this writes a new segments file into the index, effectively removing all documents in broken segments from the index. BE CAREFUL.
WARNING: Make sure you only call this when the index is not opened by any writer.
IOException
public static void main(String[] args) throws IOException, InterruptedException
Run it like this:
java -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex pathToIndex [-fix] [-segment X] [-segment Y]
-fix
: actually write a new segments_N file, removing any problematic segments
-segment X
: only check the specified
segment(s). This can be specified multiple times,
to check more than one segment, eg -segment _2
-segment _a
. You can't use this with the -fix
option.
WARNING: -fix
should only be used on an emergency basis as it will cause
documents (perhaps many) to be permanently removed from the index. Always make
a backup copy of your index before running this! Do not run this tool on an index
that is actively being written to. You have been warned!
Run without -fix, this tool will open the index, report version information and report any exceptions it hits and what action it would take if -fix were specified. With -fix, this tool will remove any segments that have issues and write a new segments_N file. This means all documents contained in the affected segments will be removed.
This tool exits with exit code 1 if the index cannot be opened or has any corruption, else 0.
IOException
InterruptedException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |