Class MultiPassIndexSplitter
This tool splits input index into multiple equal parts. The method employed here uses AddIndexes(IndexReader[]) where the input data comes from the input index with artificially applied deletes to the document id-s that fall outside the selected partition.
Note 1: Deletes are only applied to a buffered list of deleted docs and don't affect the source index - this tool works also with read-only indexes.
Note 2: the disadvantage of this tool is that source index needs to be read as many times as there are parts to be created, hence the name of this tool.
NOTE: this tool is unaware of documents added atomically via AddDocuments(IEnumerable<IEnumerable<IIndexableField>>, Analyzer) or UpdateDocuments(Term, IEnumerable<IEnumerable<IIndexableField>>, Analyzer), which means it can easily break up such document groups.
Inheritance
Inherited Members
Namespace: Lucene.Net.Index
Assembly: Lucene.Net.Misc.dll
Syntax
public class MultiPassIndexSplitter
Methods
| Improve this Doc View SourceMain(String[])
Declaration
public static void Main(string[] args)
Parameters
Type | Name | Description |
---|---|---|
System.String[] | args |
Split(LuceneVersion, IndexReader, Directory[], Boolean)
Split source index into multiple parts.
Declaration
public virtual void Split(LuceneVersion version, IndexReader in, Directory[] outputs, bool seq)
Parameters
Type | Name | Description |
---|---|---|
LuceneVersion | version | lucene compatibility version |
IndexReader | in | source index, can have deletions, can have multiple segments (or multiple readers). |
Directory[] | outputs | list of directories where the output parts will be stored. |
System.Boolean | seq | if true, then the source index will be split into equal increasing ranges of document id-s. If false, source document id-s will be assigned in a deterministic round-robin fashion to one of the output splits. |
Exceptions
Type | Condition |
---|---|
System.IO.IOException | If there is a low-level I/O error |