public final class BytesRef extends Object implements Comparable<BytesRef>, Cloneable
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)!
BytesRef
implements Comparable
. The underlying byte arrays
are sorted lexicographically, numerically treating elements as unsigned.
This is identical to Unicode codepoint order.
Modifier and Type | Field and Description |
---|---|
byte[] |
bytes
The contents of the BytesRef.
|
static byte[] |
EMPTY_BYTES
An empty byte array for convenience
|
int |
length
Length of used bytes.
|
int |
offset
Offset of first valid byte.
|
Constructor and Description |
---|
BytesRef()
Create a BytesRef with
EMPTY_BYTES |
BytesRef(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(CharSequence text)
Initialize the byte[] from the UTF8 bytes
for the provided String.
|
BytesRef(int capacity)
Create a BytesRef pointing to a new array of size
capacity . |
Modifier and Type | Method and Description |
---|---|
boolean |
bytesEquals(BytesRef other)
Expert: compares the bytes against another BytesRef,
returning true if the bytes are equal.
|
BytesRef |
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.
|
int |
compareTo(BytesRef other)
Unsigned byte order comparison
|
static BytesRef |
deepCopyOf(BytesRef other)
Creates a new BytesRef that points to a copy of the bytes from
other |
boolean |
equals(Object other) |
int |
hashCode()
Calculates the hash code as required by TermsHash during indexing.
|
boolean |
isValid()
Performs internal consistency checks.
|
String |
toString()
Returns hex encoded bytes, eg [0x6c 0x75 0x63 0x65 0x6e 0x65]
|
String |
utf8ToString()
Interprets stored bytes as UTF8 bytes, returning the
resulting string
|
public static final byte[] EMPTY_BYTES
public byte[] bytes
null
.public int offset
public int length
public BytesRef()
EMPTY_BYTES
public BytesRef(byte[] bytes, int offset, int length)
public BytesRef(byte[] bytes)
public BytesRef(int capacity)
capacity
.
Offset and length will both be zero.public BytesRef(CharSequence text)
text
- This must be well-formed
unicode text, with no unpaired surrogates.public boolean bytesEquals(BytesRef other)
other
- Another BytesRef, should not be null.public BytesRef clone()
clone
in class Object
deepCopyOf(org.apache.lucene.util.BytesRef)
public int hashCode()
This is currently implemented as MurmurHash3 (32
bit), using the seed from StringHelper.GOOD_FAST_HASH_SEED
, but is subject to
change from release to release.
public String utf8ToString()
public String toString()
public int compareTo(BytesRef other)
compareTo
in interface Comparable<BytesRef>
public static BytesRef deepCopyOf(BytesRef other)
other
The returned BytesRef will have a length of other.length and an offset of zero.
public boolean isValid()
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.