• API

    Show / Hide Table of Contents

    Class Int32Field

    Field that indexes System.Int32 values for efficient range filtering and sorting. Here's an example usage:

        document.Add(new Int32Field(name, 6, Field.Store.NO));
    For optimal performance, re-use the Int32Field and Document instance for more than one document:
        Int32Field field = new Int32Field(name, 6, Field.Store.NO);
        Document document = new Document();
        document.Add(field);
    
        for (all documents) 
        {
            ...
            field.SetInt32Value(value)
            writer.AddDocument(document);
            ...
        }
    See also Int64Field, SingleField, DoubleField.

    To perform range querying or filtering against a Int32Field, use NumericRangeQuery<T> or NumericRangeFilter<T>. To sort according to a Int32Field, use the normal numeric sort types, eg INT32. Int32Field values can also be loaded directly from IFieldCache.

    You may add the same field name as an Int32Field to the same document more than once. Range querying and filtering will be the logical OR of all values; so a range query will hit all documents that have at least one value in the range. However sort behavior is not defined. If you need to sort, you should separately index a single-valued Int32Field.

    An Int32Field will consume somewhat more disk space in the index than an ordinary single-valued field. However, for a typical index that includes substantial textual content per document, this increase will likely be in the noise.

    Within Lucene, each numeric value is indexed as a trie structure, where each term is logically assigned to larger and larger pre-defined brackets (which are simply lower-precision representations of the value). The step size between each successive bracket is called the precisionStep, measured in bits. Smaller precisionStep values result in larger number of brackets, which consumes more disk space in the index but may result in faster range search performance. The default value, 4, was selected for a reasonable tradeoff of disk space consumption versus performance. You can create a custom FieldType and invoke the NumericPrecisionStep setter if you'd like to change the value. Note that you must also specify a congruent value when creating NumericRangeQuery<T> or NumericRangeFilter<T>. For low cardinality fields larger precision steps are good. If the cardinality is < 100, it is fair to use System.Int32.MaxValue, which produces one term per value.

    For more information on the internals of numeric trie indexing, including the PrecisionStep precisionStep configuration, see NumericRangeQuery<T>. The format of indexed values is described in NumericUtils.

    If you only need to sort by numeric value, and never run range querying/filtering, you can index using a precisionStep of System.Int32.MaxValue. this will minimize disk space consumed.

    More advanced users can instead use NumericTokenStream directly, when indexing numbers. this class is a wrapper around this token stream type for easier, more intuitive usage.

    NOTE: This was IntField in Lucene

    @since 2.9

    Inheritance
    System.Object
    Field
    Int32Field
    Implements
    IIndexableField
    Inherited Members
    Field.m_type
    Field.m_name
    Field.FieldsData
    Field.m_tokenStream
    Field.m_boost
    Field.GetStringValue()
    Field.GetStringValue(IFormatProvider)
    Field.GetStringValue(String)
    Field.GetStringValue(String, IFormatProvider)
    Field.GetReaderValue()
    Field.GetTokenStreamValue()
    Field.SetStringValue(String)
    Field.SetReaderValue(TextReader)
    Field.SetBytesValue(BytesRef)
    Field.SetBytesValue(Byte[])
    Field.SetByteValue(Byte)
    Field.SetInt16Value(Int16)
    Field.SetInt32Value(Int32)
    Field.SetInt64Value(Int64)
    Field.SetSingleValue(Single)
    Field.SetDoubleValue(Double)
    Field.SetTokenStream(TokenStream)
    Field.Name
    Field.Boost
    Field.GetNumericValue()
    Field.NumericType
    Field.GetByteValue()
    Field.GetInt16Value()
    Field.GetInt32Value()
    Field.GetInt64Value()
    Field.GetSingleValue()
    Field.GetDoubleValue()
    Field.GetBinaryValue()
    Field.ToString()
    Field.FieldType
    Field.IndexableFieldType
    Field.GetTokenStream(Analyzer)
    Field.TranslateFieldType(Field.Store, Field.Index, Field.TermVector)
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    Namespace: Lucene.Net.Documents
    Assembly: Lucene.Net.dll
    Syntax
    public sealed class Int32Field : Field, IIndexableField

    Constructors

    | Improve this Doc View Source

    Int32Field(String, Int32, Field.Store)

    Creates a stored or un-stored Int32Field with the provided value and default precisionStep PRECISION_STEP_DEFAULT (4).

    Declaration
    public Int32Field(string name, int value, Field.Store stored)
    Parameters
    Type Name Description
    System.String name

    field name

    System.Int32 value

    32-bit System.Int32 value

    Field.Store stored

    YES if the content should also be stored

    Exceptions
    Type Condition
    System.ArgumentNullException

    if the field name is null.

    | Improve this Doc View Source

    Int32Field(String, Int32, FieldType)

    Expert: allows you to customize the FieldType.

    Declaration
    public Int32Field(string name, int value, FieldType type)
    Parameters
    Type Name Description
    System.String name

    field name

    System.Int32 value

    32-bit System.Int32 value

    FieldType type

    customized field type: must have NumericType of INT32.

    Exceptions
    Type Condition
    System.ArgumentNullException

    if the field name or type is NONE

    System.ArgumentException

    if the field type does not have a NumericType of INT32

    Fields

    | Improve this Doc View Source

    TYPE_NOT_STORED

    Type for an Int32Field that is not stored: normalization factors, frequencies, and positions are omitted.

    Declaration
    public static readonly FieldType TYPE_NOT_STORED
    Field Value
    Type Description
    FieldType
    | Improve this Doc View Source

    TYPE_STORED

    Type for a stored Int32Field: normalization factors, frequencies, and positions are omitted.

    Declaration
    public static readonly FieldType TYPE_STORED
    Field Value
    Type Description
    FieldType

    Implements

    IIndexableField

    Extension Methods

    IndexableFieldExtensions.GetByteValueOrDefault(IIndexableField)
    IndexableFieldExtensions.GetInt16ValueOrDefault(IIndexableField)
    IndexableFieldExtensions.GetInt32ValueOrDefault(IIndexableField)
    IndexableFieldExtensions.GetInt64ValueOrDefault(IIndexableField)
    IndexableFieldExtensions.GetSingleValueOrDefault(IIndexableField)
    IndexableFieldExtensions.GetDoubleValueOrDefault(IIndexableField)
    • Improve this Doc
    • View Source
    Back to top Copyright © 2020 Licensed to the Apache Software Foundation (ASF)