/* | |
* 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. | |
*/ | |
using System; | |
namespace Lucene.Net.Index | |
{ | |
/// <summary> Useful constants representing filenames and extensions used by lucene | |
/// | |
/// </summary> | |
/// <author> Bernhard Messer | |
/// </author> | |
/// <version> $rcs = ' $Id: Exp $ ' ; | |
/// </version> | |
public sealed class IndexFileNames | |
{ | |
/// <summary>Name of the index segment file </summary> | |
public /*internal*/ const System.String SEGMENTS = "segments"; | |
/// <summary>Name of the generation reference file name </summary> | |
public /*internal*/ const System.String SEGMENTS_GEN = "segments.gen"; | |
/// <summary>Name of the index deletable file (only used in | |
/// pre-lockless indices) | |
/// </summary> | |
internal const System.String DELETABLE = "deletable"; | |
/// <summary>Extension of norms file </summary> | |
internal const System.String NORMS_EXTENSION = "nrm"; | |
/// <summary>Extension of freq postings file </summary> | |
internal const System.String FREQ_EXTENSION = "frq"; | |
/// <summary>Extension of prox postings file </summary> | |
internal const System.String PROX_EXTENSION = "prx"; | |
/// <summary>Extension of terms file </summary> | |
internal const System.String TERMS_EXTENSION = "tis"; | |
/// <summary>Extension of terms index file </summary> | |
internal const System.String TERMS_INDEX_EXTENSION = "tii"; | |
/// <summary>Extension of stored fields index file </summary> | |
internal const System.String FIELDS_INDEX_EXTENSION = "fdx"; | |
/// <summary>Extension of stored fields file </summary> | |
internal const System.String FIELDS_EXTENSION = "fdt"; | |
/// <summary>Extension of vectors fields file </summary> | |
internal const System.String VECTORS_FIELDS_EXTENSION = "tvf"; | |
/// <summary>Extension of vectors documents file </summary> | |
public /*internal*/ const System.String VECTORS_DOCUMENTS_EXTENSION = "tvd"; | |
/// <summary>Extension of vectors index file </summary> | |
public /*internal*/ const System.String VECTORS_INDEX_EXTENSION = "tvx"; | |
/// <summary>Extension of compound file </summary> | |
internal const System.String COMPOUND_FILE_EXTENSION = "cfs"; | |
/// <summary>Extension of compound file for doc store files</summary> | |
internal const System.String COMPOUND_FILE_STORE_EXTENSION = "cfx"; | |
/// <summary>Extension of deletes </summary> | |
internal const System.String DELETES_EXTENSION = "del"; | |
/// <summary>Extension of field infos </summary> | |
public /*internal*/ const System.String FIELD_INFOS_EXTENSION = "fnm"; | |
/// <summary>Extension of plain norms </summary> | |
internal const System.String PLAIN_NORMS_EXTENSION = "f"; | |
/// <summary>Extension of separate norms </summary> | |
internal const System.String SEPARATE_NORMS_EXTENSION = "s"; | |
/// <summary>Extension of gen file </summary> | |
internal const System.String GEN_EXTENSION = "gen"; | |
/// <summary> This array contains all filename extensions used by | |
/// Lucene's index files, with two exceptions, namely the | |
/// extension made up from <code>.f</code> + a number and | |
/// from <code>.s</code> + a number. Also note that | |
/// Lucene's <code>segments_N</code> files do not have any | |
/// filename extension. | |
/// </summary> | |
internal static readonly System.String[] INDEX_EXTENSIONS = new System.String[]{COMPOUND_FILE_EXTENSION, FIELD_INFOS_EXTENSION, FIELDS_INDEX_EXTENSION, FIELDS_EXTENSION, TERMS_INDEX_EXTENSION, TERMS_EXTENSION, FREQ_EXTENSION, PROX_EXTENSION, DELETES_EXTENSION, VECTORS_INDEX_EXTENSION, VECTORS_DOCUMENTS_EXTENSION, VECTORS_FIELDS_EXTENSION, GEN_EXTENSION, NORMS_EXTENSION, COMPOUND_FILE_STORE_EXTENSION}; | |
/// <summary>File extensions that are added to a compound file | |
/// (same as above, minus "del", "gen", "cfs"). | |
/// </summary> | |
internal static readonly System.String[] INDEX_EXTENSIONS_IN_COMPOUND_FILE = new System.String[]{FIELD_INFOS_EXTENSION, FIELDS_INDEX_EXTENSION, FIELDS_EXTENSION, TERMS_INDEX_EXTENSION, TERMS_EXTENSION, FREQ_EXTENSION, PROX_EXTENSION, VECTORS_INDEX_EXTENSION, VECTORS_DOCUMENTS_EXTENSION, VECTORS_FIELDS_EXTENSION, NORMS_EXTENSION}; | |
internal static readonly System.String[] STORE_INDEX_EXTENSIONS = new System.String[]{VECTORS_INDEX_EXTENSION, VECTORS_FIELDS_EXTENSION, VECTORS_DOCUMENTS_EXTENSION, FIELDS_INDEX_EXTENSION, FIELDS_EXTENSION}; | |
internal static readonly System.String[] NON_STORE_INDEX_EXTENSIONS = new System.String[]{FIELD_INFOS_EXTENSION, FREQ_EXTENSION, PROX_EXTENSION, TERMS_EXTENSION, TERMS_INDEX_EXTENSION, NORMS_EXTENSION}; | |
/// <summary>File extensions of old-style index files </summary> | |
internal static readonly System.String[] COMPOUND_EXTENSIONS = new System.String[]{FIELD_INFOS_EXTENSION, FREQ_EXTENSION, PROX_EXTENSION, FIELDS_INDEX_EXTENSION, FIELDS_EXTENSION, TERMS_INDEX_EXTENSION, TERMS_EXTENSION}; | |
/// <summary>File extensions for term vector support </summary> | |
internal static readonly System.String[] VECTOR_EXTENSIONS = new System.String[]{VECTORS_INDEX_EXTENSION, VECTORS_DOCUMENTS_EXTENSION, VECTORS_FIELDS_EXTENSION}; | |
/// <summary> Computes the full file name from base, extension and | |
/// generation. If the generation is -1, the file name is | |
/// null. If it's 0, the file name is <base><extension>. | |
/// If it's > 0, the file name is <base>_<generation><extension>. | |
/// | |
/// </summary> | |
/// <param name="base">-- main part of the file name | |
/// </param> | |
/// <param name="extension">-- extension of the filename (including .) | |
/// </param> | |
/// <param name="gen">-- generation | |
/// </param> | |
public /*internal*/ static System.String FileNameFromGeneration(System.String base_Renamed, System.String extension, long gen) | |
{ | |
if (gen == SegmentInfo.NO) | |
{ | |
return null; | |
} | |
else if (gen == SegmentInfo.WITHOUT_GEN) | |
{ | |
return base_Renamed + extension; | |
} | |
else | |
{ | |
#if !PRE_LUCENE_NET_2_0_0_COMPATIBLE | |
return base_Renamed + "_" + SupportClass.Number.ToString(gen) + extension; | |
#else | |
return base_Renamed + "_" + System.Convert.ToString(gen, 16) + extension; | |
#endif | |
} | |
} | |
/// <summary> Returns true if the provided filename is one of the doc | |
/// store files (ends with an extension in | |
/// STORE_INDEX_EXTENSIONS). | |
/// </summary> | |
internal static bool IsDocStoreFile(System.String fileName) | |
{ | |
if (fileName.EndsWith(COMPOUND_FILE_STORE_EXTENSION)) | |
return true; | |
for (int i = 0; i < STORE_INDEX_EXTENSIONS.Length; i++) | |
if (fileName.EndsWith(STORE_INDEX_EXTENSIONS[i])) | |
return true; | |
return false; | |
} | |
} | |
} |