Fork me on GitHub
  • API

    Show / Hide Table of Contents

    Class FixedBitSet

    BitSet of fixed length (numBits), backed by accessible (GetBits()) long[], accessed with an int index, implementing GetBits() and DocIdSet. If you need to manage more than 2.1B bits, use Int64BitSet.

    Note

    This API is for internal purposes only and might change in incompatible ways in the next release.

    Inheritance
    object
    DocIdSet
    FixedBitSet
    Implements
    IBits
    Inherited Members
    DocIdSet.NewAnonymous(Func<DocIdSetIterator>)
    DocIdSet.NewAnonymous(Func<DocIdSetIterator>, Func<IBits>)
    DocIdSet.NewAnonymous(Func<DocIdSetIterator>, Func<bool>)
    DocIdSet.NewAnonymous(Func<DocIdSetIterator>, Func<IBits>, Func<bool>)
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Lucene.Net.Util
    Assembly: Lucene.Net.dll
    Syntax
    public sealed class FixedBitSet : DocIdSet, IBits

    Constructors

    FixedBitSet(int)

    BitSet of fixed length (numBits), backed by accessible (GetBits()) long[], accessed with an int index, implementing GetBits() and DocIdSet. If you need to manage more than 2.1B bits, use Int64BitSet.

    Note

    This API is for internal purposes only and might change in incompatible ways in the next release.

    Declaration
    public FixedBitSet(int numBits)
    Parameters
    Type Name Description
    int numBits

    FixedBitSet(long[], int)

    BitSet of fixed length (numBits), backed by accessible (GetBits()) long[], accessed with an int index, implementing GetBits() and DocIdSet. If you need to manage more than 2.1B bits, use Int64BitSet.

    Note

    This API is for internal purposes only and might change in incompatible ways in the next release.

    Declaration
    public FixedBitSet(long[] storedBits, int numBits)
    Parameters
    Type Name Description
    long[] storedBits
    int numBits

    Properties

    Bits

    Optionally provides a IBits interface for random access to matching documents.

    Declaration
    public override IBits Bits { get; }
    Property Value
    Type Description
    IBits

    null, if this DocIdSet does not support random access. In contrast to GetIterator(), a return value of nulldoes not imply that no documents match the filter! The default implementation does not provide random access, so you only need to implement this method if your DocIdSet can guarantee random access to every docid in O(1) time without external disk access (as IBits interface cannot throw IOException). This is generally true for bit sets like FixedBitSet, which return itself if they are used as DocIdSet.

    Overrides
    DocIdSet.Bits

    Cardinality

    Gets the number of set bits. NOTE: this visits every long in the backing bits array, and the result is not internally cached!

    Declaration
    public int Cardinality { get; }
    Property Value
    Type Description
    int

    IsCacheable

    This DocIdSet implementation is cacheable.

    Declaration
    public override bool IsCacheable { get; }
    Property Value
    Type Description
    bool
    Overrides
    DocIdSet.IsCacheable

    Length

    Returns the number of bits in this set

    Declaration
    public int Length { get; }
    Property Value
    Type Description
    int

    Methods

    And(DocIdSetIterator)

    Does in-place AND of the bits provided by the iterator.

    Declaration
    public void And(DocIdSetIterator iter)
    Parameters
    Type Name Description
    DocIdSetIterator iter

    And(FixedBitSet)

    this = this AND other

    Declaration
    public void And(FixedBitSet other)
    Parameters
    Type Name Description
    FixedBitSet other

    AndNot(DocIdSetIterator)

    Does in-place AND NOT of the bits provided by the iterator.

    Declaration
    public void AndNot(DocIdSetIterator iter)
    Parameters
    Type Name Description
    DocIdSetIterator iter

    AndNot(FixedBitSet)

    this = this AND NOT other

    Declaration
    public void AndNot(FixedBitSet other)
    Parameters
    Type Name Description
    FixedBitSet other

    AndNotCount(FixedBitSet, FixedBitSet)

    Returns the popcount or cardinality of "a and not b" or "intersection(a, not(b))". Neither set is modified.

    Declaration
    public static long AndNotCount(FixedBitSet a, FixedBitSet b)
    Parameters
    Type Name Description
    FixedBitSet a
    FixedBitSet b
    Returns
    Type Description
    long

    Bits2words(int)

    Returns the number of 64 bit words it would take to hold numBits

    Declaration
    public static int Bits2words(int numBits)
    Parameters
    Type Name Description
    int numBits
    Returns
    Type Description
    int

    Clear(int)

    BitSet of fixed length (numBits), backed by accessible (GetBits()) long[], accessed with an int index, implementing GetBits() and DocIdSet. If you need to manage more than 2.1B bits, use Int64BitSet.

    Note

    This API is for internal purposes only and might change in incompatible ways in the next release.

    Declaration
    public void Clear(int index)
    Parameters
    Type Name Description
    int index

    Clear(int, int)

    Clears a range of bits.

    Declaration
    public void Clear(int startIndex, int endIndex)
    Parameters
    Type Name Description
    int startIndex

    Lower index

    int endIndex

    One-past the last bit to clear

    Clone()

    BitSet of fixed length (numBits), backed by accessible (GetBits()) long[], accessed with an int index, implementing GetBits() and DocIdSet. If you need to manage more than 2.1B bits, use Int64BitSet.

    Note

    This API is for internal purposes only and might change in incompatible ways in the next release.

    Declaration
    public FixedBitSet Clone()
    Returns
    Type Description
    FixedBitSet

    EnsureCapacity(FixedBitSet, int)

    If the given FixedBitSet is large enough to hold numBits, returns the given bits, otherwise returns a new FixedBitSet which can hold the requested number of bits.

    NOTE: the returned bitset reuses the underlying long[] of the given bits if possible. Also, calling Length on the returned bits may return a value greater than numBits.
    Declaration
    public static FixedBitSet EnsureCapacity(FixedBitSet bits, int numBits)
    Parameters
    Type Name Description
    FixedBitSet bits
    int numBits
    Returns
    Type Description
    FixedBitSet

    Equals(object)

    Returns true if both sets have the same bits set

    Declaration
    public override bool Equals(object o)
    Parameters
    Type Name Description
    object o
    Returns
    Type Description
    bool
    Overrides
    object.Equals(object)

    Flip(int, int)

    Flips a range of bits

    Declaration
    public void Flip(int startIndex, int endIndex)
    Parameters
    Type Name Description
    int startIndex

    Lower index

    int endIndex

    One-past the last bit to flip

    Get(int)

    Returns the value of the bit with the specified index.

    Declaration
    public bool Get(int index)
    Parameters
    Type Name Description
    int index

    Index, should be non-negative and < Length. The result of passing negative or out of bounds values is undefined by this interface, just don't do it!

    Returns
    Type Description
    bool

    true if the bit is set, false otherwise.

    GetAndClear(int)

    BitSet of fixed length (numBits), backed by accessible (GetBits()) long[], accessed with an int index, implementing GetBits() and DocIdSet. If you need to manage more than 2.1B bits, use Int64BitSet.

    Note

    This API is for internal purposes only and might change in incompatible ways in the next release.

    Declaration
    public bool GetAndClear(int index)
    Parameters
    Type Name Description
    int index
    Returns
    Type Description
    bool

    GetAndSet(int)

    BitSet of fixed length (numBits), backed by accessible (GetBits()) long[], accessed with an int index, implementing GetBits() and DocIdSet. If you need to manage more than 2.1B bits, use Int64BitSet.

    Note

    This API is for internal purposes only and might change in incompatible ways in the next release.

    Declaration
    public bool GetAndSet(int index)
    Parameters
    Type Name Description
    int index
    Returns
    Type Description
    bool

    GetBits()

    Expert.

    Declaration
    public long[] GetBits()
    Returns
    Type Description
    long[]

    GetHashCode()

    Serves as the default hash function.

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    int

    A hash code for the current object.

    Overrides
    object.GetHashCode()

    GetIterator()

    Provides a DocIdSetIterator to access the set. This implementation can return null if there are no docs that match.

    Declaration
    public override DocIdSetIterator GetIterator()
    Returns
    Type Description
    DocIdSetIterator
    Overrides
    DocIdSet.GetIterator()

    IntersectionCount(FixedBitSet, FixedBitSet)

    Returns the popcount or cardinality of the intersection of the two sets. Neither set is modified.

    Declaration
    public static long IntersectionCount(FixedBitSet a, FixedBitSet b)
    Parameters
    Type Name Description
    FixedBitSet a
    FixedBitSet b
    Returns
    Type Description
    long

    Intersects(FixedBitSet)

    Returns true if the sets have any elements in common

    Declaration
    public bool Intersects(FixedBitSet other)
    Parameters
    Type Name Description
    FixedBitSet other
    Returns
    Type Description
    bool

    NextSetBit(int)

    Returns the index of the first set bit starting at the index specified. -1 is returned if there are no more set bits.

    Declaration
    public int NextSetBit(int index)
    Parameters
    Type Name Description
    int index
    Returns
    Type Description
    int

    Or(DocIdSetIterator)

    Does in-place OR of the bits provided by the iterator.

    Declaration
    public void Or(DocIdSetIterator iter)
    Parameters
    Type Name Description
    DocIdSetIterator iter

    Or(FixedBitSet)

    this = this OR other

    Declaration
    public void Or(FixedBitSet other)
    Parameters
    Type Name Description
    FixedBitSet other

    PrevSetBit(int)

    Returns the index of the last set bit before or on the index specified. -1 is returned if there are no more set bits.

    Declaration
    public int PrevSetBit(int index)
    Parameters
    Type Name Description
    int index
    Returns
    Type Description
    int

    Set(int)

    BitSet of fixed length (numBits), backed by accessible (GetBits()) long[], accessed with an int index, implementing GetBits() and DocIdSet. If you need to manage more than 2.1B bits, use Int64BitSet.

    Note

    This API is for internal purposes only and might change in incompatible ways in the next release.

    Declaration
    public void Set(int index)
    Parameters
    Type Name Description
    int index

    Set(int, int)

    Sets a range of bits

    Declaration
    public void Set(int startIndex, int endIndex)
    Parameters
    Type Name Description
    int startIndex

    Lower index

    int endIndex

    One-past the last bit to set

    UnionCount(FixedBitSet, FixedBitSet)

    Returns the popcount or cardinality of the union of the two sets. Neither set is modified.

    Declaration
    public static long UnionCount(FixedBitSet a, FixedBitSet b)
    Parameters
    Type Name Description
    FixedBitSet a
    FixedBitSet b
    Returns
    Type Description
    long

    Xor(DocIdSetIterator)

    Does in-place XOR of the bits provided by the iterator.

    Declaration
    public void Xor(DocIdSetIterator iter)
    Parameters
    Type Name Description
    DocIdSetIterator iter

    Xor(FixedBitSet)

    this = this XOR other

    Declaration
    public void Xor(FixedBitSet other)
    Parameters
    Type Name Description
    FixedBitSet other

    Implements

    IBits
    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.