org.apache.lucene.index

Class SegmentInfos


public final class SegmentInfos
extends Vector

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Nested Class Summary

static class
SegmentInfos.FindSegmentsFile
Utility class for executing code that needs to do something with the current segments file.

Field Summary

static int
FORMAT
The file format version, a negative number.
static int
FORMAT_LOCKLESS
This format adds details used for lockless commits.
static int
FORMAT_SINGLE_NORM_FILE
This is the current file format written.
int
counter

Method Summary

Object
clone()
Returns a copy of this instance, also copying each SegmentInfo.
String
getCurrentSegmentFileName()
Get the segments_N filename in use by this segment infos.
static String
getCurrentSegmentFileName(String[] files)
Get the filename of the current segments_N file from a list of files.
static String
getCurrentSegmentFileName(Directory directory)
Get the filename of the current segments_N file in the directory.
static long
getCurrentSegmentGeneration(String[] files)
Get the generation (N) of the current segments_N file from a list of files.
static long
getCurrentSegmentGeneration(Directory directory)
Get the generation (N) of the current segments_N file in the directory.
static int
getDefaultGenFileRetryCount()
static int
getDefaultGenFileRetryPauseMsec()
static int
getDefaultGenLookahedCount()
static PrintStream
getInfoStream()
String
getNextSegmentFileName()
Get the next segments_N filename that will be written.
long
getVersion()
version number when this SegmentInfos was generated.
org.apache.lucene.index.SegmentInfo
info(int i)
void
read(Directory directory)
This version of read uses the retry logic (for lock-less commits) to find the right segments file to load.
void
read(Directory directory, String segmentFileName)
Read a particular segmentFileName.
static long
readCurrentVersion(Directory directory)
Current version number from segments file.
static void
setDefaultGenFileRetryCount(int count)
Advanced: set how many times to try loading the segments.gen file contents to determine current segment generation.
static void
setDefaultGenFileRetryPauseMsec(int msec)
Advanced: set how many milliseconds to pause in between attempts to load the segments.gen file.
static void
setDefaultGenLookaheadCount(int count)
Advanced: set how many times to try incrementing the gen when loading the segments file.
static void
setInfoStream(PrintStream infoStream)
If non-null, information about retries when loading the segments file will be printed to this.
void
write(Directory directory)

Field Details

FORMAT

public static final int FORMAT
The file format version, a negative number.
Field Value:
-1

FORMAT_LOCKLESS

public static final int FORMAT_LOCKLESS
Field Value:
-2

FORMAT_SINGLE_NORM_FILE

public static final int FORMAT_SINGLE_NORM_FILE
Field Value:
-3

counter

public int counter

Method Details

clone

public Object clone()
Returns a copy of this instance, also copying each SegmentInfo.

getCurrentSegmentFileName

public String getCurrentSegmentFileName()
Get the segments_N filename in use by this segment infos.

getCurrentSegmentFileName

public static String getCurrentSegmentFileName(String[] files)
            throws IOException
Get the filename of the current segments_N file from a list of files.
Parameters:
files - -- array of file names to check

getCurrentSegmentFileName

public static String getCurrentSegmentFileName(Directory directory)
            throws IOException
Get the filename of the current segments_N file in the directory.
Parameters:
directory - -- directory to search for the latest segments_N file

getCurrentSegmentGeneration

public static long getCurrentSegmentGeneration(String[] files)
Get the generation (N) of the current segments_N file from a list of files.
Parameters:
files - -- array of file names to check

getCurrentSegmentGeneration

public static long getCurrentSegmentGeneration(Directory directory)
            throws IOException
Get the generation (N) of the current segments_N file in the directory.
Parameters:
directory - -- directory to search for the latest segments_N file

getDefaultGenFileRetryCount

public static int getDefaultGenFileRetryCount()

getDefaultGenFileRetryPauseMsec

public static int getDefaultGenFileRetryPauseMsec()

getDefaultGenLookahedCount

public static int getDefaultGenLookahedCount()

getInfoStream

public static PrintStream getInfoStream()

getNextSegmentFileName

public String getNextSegmentFileName()
Get the next segments_N filename that will be written.

getVersion

public long getVersion()
version number when this SegmentInfos was generated.

info

public final org.apache.lucene.index.SegmentInfo info(int i)

read

public final void read(Directory directory)
            throws IOException
This version of read uses the retry logic (for lock-less commits) to find the right segments file to load.

read

public final void read(Directory directory,
                       String segmentFileName)
            throws IOException
Read a particular segmentFileName. Note that this may throw an IOException if a commit is in process.
Parameters:
directory - -- directory containing the segments file
segmentFileName - -- segment file to load

readCurrentVersion

public static long readCurrentVersion(Directory directory)
            throws IOException
Current version number from segments file.

setDefaultGenFileRetryCount

public static void setDefaultGenFileRetryCount(int count)
Advanced: set how many times to try loading the segments.gen file contents to determine current segment generation. This file is only referenced when the primary method (listing the directory) fails.

setDefaultGenFileRetryPauseMsec

public static void setDefaultGenFileRetryPauseMsec(int msec)
Advanced: set how many milliseconds to pause in between attempts to load the segments.gen file.

setDefaultGenLookaheadCount

public static void setDefaultGenLookaheadCount(int count)
Advanced: set how many times to try incrementing the gen when loading the segments file. This only runs if the primary (listing directory) and secondary (opening segments.gen file) methods fail to find the segments file.

setInfoStream

public static void setInfoStream(PrintStream infoStream)
If non-null, information about retries when loading the segments file will be printed to this.

write

public final void write(Directory directory)
            throws IOException

Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.