Class DocValuesFormat
Encodes/decodes per-document values.
Note, when extending this class, the name (Name) may written into the index in certain configurations. In order for the segment to be read, the name must resolve to your implementation via ForName(String). This method uses GetDocValuesFormat(String) to resolve format names.
To implement your own format:
- Subclass this class.
- Subclass DefaultDocValuesFormatFactory, override the Initialize() method,
and add the line
base.ScanForDocValuesFormats(typeof(YourDocValuesFormat).Assembly)
. If you have any format classes in your assembly that are not meant for reading, you can add the ExcludeDocValuesFormatFromScanAttribute to them so they are ignored by the scan. - Set the new IDocValuesFormatFactory by calling SetDocValuesFormatFactory(IDocValuesFormatFactory) at application startup.
DocValuesFormat Names
Unlike the Java version, format names are by default convention-based on the class name. If you name your custom format class "MyCustomDocValuesFormat", the format name will the same name without the "DocValuesFormat" suffix: "MyCustom".
You can override this default behavior by using the DocValuesFormatNameAttribute to name the format differently than this convention. Format names must be all ASCII alphanumeric, and less than 128 characters in length.
Note
This API is experimental and might change in incompatible ways in the next release.
Inheritance
Inherited Members
Namespace: Lucene.Net.Codecs
Assembly: Lucene.Net.dll
Syntax
public abstract class DocValuesFormat
Constructors
| Improve this Doc View SourceDocValuesFormat()
Creates a new docvalues format.
The provided name will be written into the index segment in some configurations (such as when using PerFieldDocValuesFormat): in such configurations, for the segment to be read this class should be registered by subclassing DefaultDocValuesFormatFactory and calling ScanForDocValuesFormats(Assembly) in the class constructor. The new IDocValuesFormatFactory can be registered by calling SetDocValuesFormatFactory(IDocValuesFormatFactory) at application startup.
Declaration
protected DocValuesFormat()
Properties
| Improve this Doc View SourceAvailableDocValuesFormats
Returns a list of all available format names.
Declaration
public static ICollection<string> AvailableDocValuesFormats { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.ICollection<System.String> |
Name
Unique name that's used to retrieve this format when reading the index.
Declaration
public string Name { get; }
Property Value
Type | Description |
---|---|
System.String |
Methods
| Improve this Doc View SourceFieldsConsumer(SegmentWriteState)
Returns a DocValuesConsumer to write docvalues to the index.
Declaration
public abstract DocValuesConsumer FieldsConsumer(SegmentWriteState state)
Parameters
Type | Name | Description |
---|---|---|
SegmentWriteState | state |
Returns
Type | Description |
---|---|
DocValuesConsumer |
FieldsProducer(SegmentReadState)
Returns a DocValuesProducer to read docvalues from the index.
NOTE: by the time this call returns, it must hold open any files it will need to use; else, those files may be deleted. Additionally, required files may be deleted during the execution of this call before there is a chance to open them. Under these circumstances an System.IO.IOException should be thrown by the implementation. System.IO.IOExceptions are expected and will automatically cause a retry of the segment opening logic with the newly revised segments.
Declaration
public abstract DocValuesProducer FieldsProducer(SegmentReadState state)
Parameters
Type | Name | Description |
---|---|---|
SegmentReadState | state |
Returns
Type | Description |
---|---|
DocValuesProducer |
ForName(String)
Looks up a format by name.
Declaration
public static DocValuesFormat ForName(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name |
Returns
Type | Description |
---|---|
DocValuesFormat |
GetDocValuesFormatFactory()
Gets the associated DocValuesFormat factory.
Declaration
public static IDocValuesFormatFactory GetDocValuesFormatFactory()
Returns
Type | Description |
---|---|
IDocValuesFormatFactory | The DocValuesFormat factory. |
SetDocValuesFormatFactory(IDocValuesFormatFactory)
Sets the IDocValuesFormatFactory instance used to instantiate DocValuesFormat subclasses.
Declaration
public static void SetDocValuesFormatFactory(IDocValuesFormatFactory docValuesFormatFactory)
Parameters
Type | Name | Description |
---|---|---|
IDocValuesFormatFactory | docValuesFormatFactory | The new IDocValuesFormatFactory. |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | The |
ToString()
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
System.String |