You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by dn...@apache.org on 2004/10/11 23:24:39 UTC
cvs commit: jakarta-lucene/src/java/org/apache/lucene/index IndexWriter.java
dnaber 2004/10/11 14:24:39
Modified: src/java/org/apache/lucene/index IndexWriter.java
Log:
deprecate the public fields, add get/set methods instead
Revision Changes Path
1.41 +112 -7 jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java
Index: IndexWriter.java
===================================================================
RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- IndexWriter.java 28 Sep 2004 18:15:52 -0000 1.40
+++ IndexWriter.java 11 Oct 2004 21:24:39 -0000 1.41
@@ -138,8 +138,7 @@
useCompoundFile = value;
}
-
- /** Expert: Set the Similarity implementation used by this IndexWriter.
+ /** Expert: Set the Similarity implementation used by this IndexWriter.
*
* @see Similarity#setDefault(Similarity)
*/
@@ -239,6 +238,102 @@
}
}
+ /** Determines the largest number of documents ever merged by addDocument().
+ * Small values (e.g., less than 10,000) are best for interactive indexing,
+ * as this limits the length of pauses while indexing to a few seconds.
+ * Larger values are best for batched indexing and speedier searches.
+ *
+ * <p>The default value is {@link Integer#MAX_VALUE}.
+ */
+ public void setMaxMergeDocs(int maxMergeDocs) {
+ this.maxMergeDocs = maxMergeDocs;
+ }
+
+ /**
+ * @see #setMaxMergeDocs
+ */
+ public int getMaxMergeDocs() {
+ return maxMergeDocs;
+ }
+
+ /**
+ * The maximum number of terms that will be indexed for a single field in a
+ * document. This limits the amount of memory required for indexing, so that
+ * collections with very large files will not crash the indexing process by
+ * running out of memory.<p/>
+ * Note that this effectively truncates large documents, excluding from the
+ * index terms that occur further in the document. If you know your source
+ * documents are large, be sure to set this value high enough to accomodate
+ * the expected size. If you set it to Integer.MAX_VALUE, then the only limit
+ * is your memory, but you should anticipate an OutOfMemoryError.<p/>
+ * By default, no more than 10,000 terms will be indexed for a field.
+ */
+ public void setMaxFieldLength(int maxFieldLength) {
+ this.maxFieldLength = maxFieldLength;
+ }
+
+ /**
+ * @see #setMaxFieldLength
+ */
+ public int getMaxFieldLength() {
+ return maxFieldLength;
+ }
+
+ /** Determines the minimal number of documents required before the buffered
+ * in-memory documents are merging and a new Segment is created.
+ * Since Documents are merged in a {@link org.apache.lucene.store.RAMDirectory},
+ * large value gives faster indexing. At the same time, mergeFactor limits
+ * the number of files open in a FSDirectory.
+ *
+ * <p> The default value is 10.
+ */
+ public void setMaxBufferedDocs(int maxBufferedDocs) {
+ this.minMergeDocs = maxBufferedDocs;
+ }
+
+ /**
+ * @see #setMaxBufferedDocs
+ */
+ public int getMaxBufferedDocs() {
+ return minMergeDocs;
+ }
+
+ /** Determines how often segment indices are merged by addDocument(). With
+ * smaller values, less RAM is used while indexing, and searches on
+ * unoptimized indices are faster, but indexing speed is slower. With larger
+ * values, more RAM is used during indexing, and while searches on unoptimized
+ * indices are slower, indexing is faster. Thus larger values (> 10) are best
+ * for batch index creation, and smaller values (< 10) for indices that are
+ * interactively maintained.
+ *
+ * <p>This must never be less than 2. The default value is 10.
+ */
+ public void setMergeFactor(int mergeFactor) {
+ if (mergeFactor < 2)
+ throw new IllegalArgumentException("mergeFactor cannot be less than 2");
+ this.mergeFactor = mergeFactor;
+ }
+
+ /**
+ * @see #setMergeFactor
+ */
+ public int getMergeFactor() {
+ return mergeFactor;
+ }
+
+ /** If non-null, information about merges will be printed to this.
+ */
+ public void setInfoStream(PrintStream infoStream) {
+ this.infoStream = infoStream;
+ }
+
+ /**
+ * @see #setInfoStream
+ */
+ public PrintStream getInfoStream() {
+ return infoStream;
+ }
+
/** Flushes all changes to an index and closes all associated files. */
public synchronized void close() throws IOException {
flushRamSegments();
@@ -284,7 +379,9 @@
* the expected size. If you set it to Integer.MAX_VALUE, then the only limit
* is your memory, but you should anticipate an OutOfMemoryError.<p/>
* By default, no more than 10,000 terms will be indexed for a field.
- */
+ *
+ * @deprecated use {@link #setMaxFieldLength} instead
+ */
public int maxFieldLength = DEFAULT_MAX_FIELD_LENGTH;
/**
@@ -329,7 +426,9 @@
* for batch index creation, and smaller values (< 10) for indices that are
* interactively maintained.
*
- * <p>This must never be less than 2. The default value is 10.*/
+ * <p>This must never be less than 2. The default value is 10.
+ * @deprecated use {@link #setMergeFactor} instead
+ */
public int mergeFactor = DEFAULT_MERGE_FACTOR;
/** Determines the minimal number of documents required before the buffered
@@ -338,7 +437,9 @@
* large value gives faster indexing. At the same time, mergeFactor limits
* the number of files open in a FSDirectory.
*
- * <p> The default value is 10.*/
+ * <p> The default value is 10.
+ * @deprecated use {@link #setMaxBufferedDocs} instead
+ */
public int minMergeDocs = DEFAULT_MIN_MERGE_DOCS;
@@ -347,10 +448,14 @@
* as this limits the length of pauses while indexing to a few seconds.
* Larger values are best for batched indexing and speedier searches.
*
- * <p>The default value is {@link Integer#MAX_VALUE}. */
+ * <p>The default value is {@link Integer#MAX_VALUE}.
+ * @deprecated use {@link #setMaxMergeDocs} instead
+ */
public int maxMergeDocs = DEFAULT_MAX_MERGE_DOCS;
- /** If non-null, information about merges will be printed to this. */
+ /** If non-null, information about merges will be printed to this.
+ * @deprecated use {@link #setInfoStream} instead
+ */
public PrintStream infoStream = null;
/** Merges all segments together into a single segment, optimizing an index
---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-dev-help@jakarta.apache.org