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)!
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 |
---|---|
void |
append(BytesRef other)
Appends the bytes from the given
BytesRef |
boolean |
bytesEquals(BytesRef other)
Expert: compares the bytes against another BytesRef,
returning true if the bytes are equal.
|
BytesRef |
clone() |
int |
compareTo(BytesRef other)
Unsigned byte order comparison
|
void |
copyBytes(BytesRef other)
Copies the bytes from the given
BytesRef |
void |
copyChars(CharSequence text)
Copies the UTF8 bytes for this string.
|
static BytesRef |
deepCopyOf(BytesRef other)
Creates a new BytesRef that points to a copy of the bytes from
other |
boolean |
equals(Object other) |
static Comparator<BytesRef> |
getUTF8SortedAsUnicodeComparator() |
static Comparator<BytesRef> |
getUTF8SortedAsUTF16Comparator()
Deprecated.
This comparator is only a transition mechanism
|
void |
grow(int newLength)
Used to grow the reference array.
|
int |
hashCode()
Calculates the hash code as required by TermsHash during indexing.
|
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 void copyChars(CharSequence text)
text
- Must be well-formed unicode text, with no
unpaired surrogates or invalid UTF16 code units.public boolean bytesEquals(BytesRef other)
other
- Another BytesRef, should not be null.public int hashCode()
It is defined as:
int hash = 0; for (int i = offset; i < offset + length; i++) { hash = 31*hash + bytes[i]; }
public String utf8ToString()
public String toString()
public void copyBytes(BytesRef other)
BytesRef
NOTE: if this would exceed the array size, this method creates a new reference array.
public void append(BytesRef other)
BytesRef
NOTE: if this would exceed the array size, this method creates a new reference array.
public void grow(int newLength)
public int compareTo(BytesRef other)
compareTo
in interface Comparable<BytesRef>
public static Comparator<BytesRef> getUTF8SortedAsUnicodeComparator()
@Deprecated public static Comparator<BytesRef> getUTF8SortedAsUTF16Comparator()
Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.