Package org.apache.lucene.util
Class BytesRef
java.lang.Object
org.apache.lucene.util.BytesRef
- All Implemented Interfaces:
Cloneable,Comparable<BytesRef>
Represents byte[], as a slice (offset + length) into an
existing byte[]. The
bytes member should never be null;
use EMPTY_BYTES if necessary.
Important note: Unless otherwise noted, Lucene uses this class to
represent terms that are encoded as UTF8 bytes in the index. To
convert them to a Java String (which is UTF16), use utf8ToString().
Using code like new String(bytes, offset, length) to do this
is wrong, as it does not respect the correct character set
and may return wrong results (depending on the platform's defaults)!
-
Field Summary
FieldsModifier and TypeFieldDescriptionbyte[]The contents of the BytesRef.static final byte[]An empty byte array for convenienceintLength of used bytes.intOffset of first valid byte. -
Constructor Summary
ConstructorsConstructorDescriptionBytesRef()Create a BytesRef withEMPTY_BYTESBytesRef(byte[] bytes) This instance will directly reference bytes w/o making a copy.BytesRef(byte[] bytes, int offset, int length) This instance will directly reference bytes w/o making a copy.BytesRef(int capacity) Create a BytesRef pointing to a new array of sizecapacity.BytesRef(CharSequence text) Initialize the byte[] from the UTF8 bytes for the provided String. -
Method Summary
Modifier and TypeMethodDescriptionvoidAppends the bytes from the givenBytesRefbooleanbytesEquals(BytesRef other) Expert: compares the bytes against another BytesRef, returning true if the bytes are equal.clone()Returns a shallow clone of this instance (the underlying bytes are not copied and will be shared by both the returned object and this object.intUnsigned byte order comparisonvoidCopies the bytes from the givenBytesRefvoidcopyChars(CharSequence text) Copies the UTF8 bytes for this string.static BytesRefdeepCopyOf(BytesRef other) Creates a new BytesRef that points to a copy of the bytes fromotherbooleanstatic Comparator<BytesRef>static Comparator<BytesRef>Deprecated.This comparator is only a transition mechanismvoidgrow(int newLength) Used to grow the reference array.inthashCode()Calculates the hash code as required by TermsHash during indexing.booleanisValid()Performs internal consistency checks.toString()Returns hex encoded bytes, eg [0x6c 0x75 0x63 0x65 0x6e 0x65]Interprets stored bytes as UTF8 bytes, returning the resulting string
-
Field Details
-
EMPTY_BYTES
public static final byte[] EMPTY_BYTESAn empty byte array for convenience -
bytes
public byte[] bytesThe contents of the BytesRef. Should never benull. -
offset
public int offsetOffset of first valid byte. -
length
public int lengthLength of used bytes.
-
-
Constructor Details
-
BytesRef
public BytesRef()Create a BytesRef withEMPTY_BYTES -
BytesRef
public BytesRef(byte[] bytes, int offset, int length) This instance will directly reference bytes w/o making a copy. bytes should not be null. -
BytesRef
public BytesRef(byte[] bytes) This instance will directly reference bytes w/o making a copy. bytes should not be null -
BytesRef
public BytesRef(int capacity) Create a BytesRef pointing to a new array of sizecapacity. Offset and length will both be zero. -
BytesRef
Initialize the byte[] from the UTF8 bytes for the provided String.- Parameters:
text- This must be well-formed unicode text, with no unpaired surrogates.
-
-
Method Details
-
copyChars
Copies the UTF8 bytes for this string.- Parameters:
text- Must be well-formed unicode text, with no unpaired surrogates or invalid UTF16 code units.
-
bytesEquals
Expert: compares the bytes against another BytesRef, returning true if the bytes are equal.- Parameters:
other- Another BytesRef, should not be null.
-
clone
Returns a shallow clone of this instance (the underlying bytes are not copied and will be shared by both the returned object and this object. -
hashCode
public int hashCode()Calculates the hash code as required by TermsHash during indexing.It is defined as:
int hash = 0; for (int i = offset; i < offset + length; i++) { hash = 31*hash + bytes[i]; } -
equals
-
utf8ToString
Interprets stored bytes as UTF8 bytes, returning the resulting string -
toString
Returns hex encoded bytes, eg [0x6c 0x75 0x63 0x65 0x6e 0x65] -
copyBytes
Copies the bytes from the givenBytesRefNOTE: if this would exceed the array size, this method creates a new reference array.
-
append
Appends the bytes from the givenBytesRefNOTE: if this would exceed the array size, this method creates a new reference array.
-
grow
public void grow(int newLength) Used to grow the reference array. In general this should not be used as it does not take the offset into account. -
compareTo
Unsigned byte order comparison- Specified by:
compareToin interfaceComparable<BytesRef>
-
getUTF8SortedAsUnicodeComparator
-
getUTF8SortedAsUTF16Comparator
Deprecated.This comparator is only a transition mechanism -
deepCopyOf
Creates a new BytesRef that points to a copy of the bytes fromotherThe returned BytesRef will have a length of other.length and an offset of zero.
-
isValid
public boolean isValid()Performs internal consistency checks. Always returns true (or throws IllegalStateException)
-