Fork me on GitHub
  • API

    Show / Hide Table of Contents

    Class DirectPostingsFormat

    Wraps Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat format for on-disk storage, but then at read time loads and stores all terms & postings directly in RAM as byte[], int[].

    WARNING: This is exceptionally RAM intensive: it makes no effort to compress the postings data, storing terms as separate byte[] and postings as separate int[], but as a result it gives substantial increase in search performance.

    This postings format supports Lucene.Net.Index.TermsEnum.Ord and SeekExact(long).

    Because this holds all term bytes as a single byte[], you cannot have more than 2.1GB worth of term bytes in a single segment.

    Note

    This API is experimental and might change in incompatible ways in the next release.

    Inheritance
    object
    PostingsFormat
    DirectPostingsFormat
    Inherited Members
    PostingsFormat.EMPTY
    PostingsFormat.SetPostingsFormatFactory(IPostingsFormatFactory)
    PostingsFormat.GetPostingsFormatFactory()
    PostingsFormat.Name
    PostingsFormat.ToString()
    PostingsFormat.ForName(string)
    PostingsFormat.AvailablePostingsFormats
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.ReferenceEquals(object, object)
    Namespace: Lucene.Net.Codecs.Memory
    Assembly: Lucene.Net.Codecs.dll
    Syntax
    [PostingsFormatName("Direct")]
    public sealed class DirectPostingsFormat : PostingsFormat

    Constructors

    DirectPostingsFormat()

    Wraps Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat format for on-disk storage, but then at read time loads and stores all terms & postings directly in RAM as byte[], int[].

    WARNING: This is exceptionally RAM intensive: it makes no effort to compress the postings data, storing terms as separate byte[] and postings as separate int[], but as a result it gives substantial increase in search performance.

    This postings format supports Lucene.Net.Index.TermsEnum.Ord and SeekExact(long).

    Because this holds all term bytes as a single byte[], you cannot have more than 2.1GB worth of term bytes in a single segment.

    Note

    This API is experimental and might change in incompatible ways in the next release.

    Declaration
    public DirectPostingsFormat()

    DirectPostingsFormat(int, int)

    minSkipCount is how many terms in a row must have the same prefix before we put a skip pointer down. Terms with docFreq less than or equal lowFreqCutoff will use a single int[] to hold all docs, freqs, position and offsets; terms with higher docFreq will use separate arrays.

    Declaration
    public DirectPostingsFormat(int minSkipCount, int lowFreqCutoff)
    Parameters
    Type Name Description
    int minSkipCount
    int lowFreqCutoff

    Methods

    FieldsConsumer(SegmentWriteState)

    Writes a new segment.

    Declaration
    public override FieldsConsumer FieldsConsumer(SegmentWriteState state)
    Parameters
    Type Name Description
    SegmentWriteState state
    Returns
    Type Description
    FieldsConsumer
    Overrides
    Lucene.Net.Codecs.PostingsFormat.FieldsConsumer(Lucene.Net.Index.SegmentWriteState)

    FieldsProducer(SegmentReadState)

    Reads a segment. 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 IOException should be thrown by the implementation. IOExceptions are expected and will automatically cause a retry of the segment opening logic with the newly revised segments.

    Declaration
    public override FieldsProducer FieldsProducer(SegmentReadState state)
    Parameters
    Type Name Description
    SegmentReadState state
    Returns
    Type Description
    FieldsProducer
    Overrides
    Lucene.Net.Codecs.PostingsFormat.FieldsProducer(Lucene.Net.Index.SegmentReadState)
    Back to top Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0
    Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation.
    All other marks mentioned may be trademarks or registered trademarks of their respective owners.