List of usage examples for org.apache.lucene.util BytesRefBuilder append
public void append(BytesRefBuilder builder)
From source file:elhuyar.bilakit.Dictionary.java
License:Apache License
static void encodeFlags(BytesRefBuilder b, char flags[]) { int len = flags.length << 1; b.grow(len);/*from ww w . j av a 2s . co m*/ b.clear(); for (int i = 0; i < flags.length; i++) { int flag = flags[i]; b.append((byte) ((flag >> 8) & 0xff)); b.append((byte) (flag & 0xff)); } }
From source file:org.codelibs.elasticsearch.common.bytes.CompositeBytesReference.java
License:Apache License
@Override public BytesRef toBytesRef() { BytesRefBuilder builder = new BytesRefBuilder(); builder.grow(length());//from w w w. j av a 2s .com BytesRef spare; BytesRefIterator iterator = iterator(); try { while ((spare = iterator.next()) != null) { builder.append(spare); } } catch (IOException ex) { throw new AssertionError("won't happen", ex); // this is really an error since we don't do IO in our bytesreferences } return builder.toBytesRef(); }
From source file:org.codelibs.elasticsearch.search.suggest.phrase.Correction.java
License:Apache License
public BytesRef join(BytesRef separator, BytesRefBuilder result, BytesRef preTag, BytesRef postTag) { BytesRef[] toJoin = new BytesRef[this.candidates.length]; int len = separator.length * this.candidates.length - 1; for (int i = 0; i < toJoin.length; i++) { Candidate candidate = candidates[i]; if (preTag == null || candidate.userInput) { toJoin[i] = candidate.term;/*from w w w .j a v a 2 s .c om*/ } else { final int maxLen = preTag.length + postTag.length + candidate.term.length; final BytesRefBuilder highlighted = new BytesRefBuilder();// just allocate once highlighted.grow(maxLen); if (i == 0 || candidates[i - 1].userInput) { highlighted.append(preTag); } highlighted.append(candidate.term); if (toJoin.length == i + 1 || candidates[i + 1].userInput) { highlighted.append(postTag); } toJoin[i] = highlighted.get(); } len += toJoin[i].length; } result.grow(len); return WordScorer.join(separator, result, toJoin); }
From source file:org.codelibs.elasticsearch.search.suggest.phrase.WordScorer.java
License:Apache License
public static BytesRef join(BytesRef separator, BytesRefBuilder result, BytesRef... toJoin) { result.clear();/*w w w . j a v a 2 s . c om*/ for (int i = 0; i < toJoin.length - 1; i++) { result.append(toJoin[i]); result.append(separator); } result.append(toJoin[toJoin.length - 1]); return result.get(); }
From source file:org.elasticsearch.common.blobstore.BlobStoreTests.java
License:Apache License
@Test public void testWriteRead() throws IOException { final BlobStore store = newBlobStore(); final BlobContainer container = store.blobContainer(new BlobPath()); byte[] data = randomBytes(randomIntBetween(10, scaledRandomIntBetween(1024, 1 << 16))); container.writeBlob("foobar", new BytesArray(data)); try (InputStream stream = container.readBlob("foobar")) { BytesRefBuilder target = new BytesRefBuilder(); while (target.length() < data.length) { byte[] buffer = new byte[scaledRandomIntBetween(1, data.length - target.length())]; int offset = scaledRandomIntBetween(0, buffer.length - 1); int read = stream.read(buffer, offset, buffer.length - offset); target.append(new BytesRef(buffer, offset, read)); }//from w ww .ja v a2s. c om assertEquals(data.length, target.length()); assertArrayEquals(data, Arrays.copyOfRange(target.bytes(), 0, target.length())); } store.close(); }
From source file:org.elasticsearch.common.bytes.AbstractBytesReferenceTestCase.java
License:Apache License
public void testRandomReads() throws IOException { int length = randomIntBetween(10, scaledRandomIntBetween(PAGE_SIZE * 2, PAGE_SIZE * 20)); BytesReference pbr = newBytesReference(length); StreamInput streamInput = pbr.streamInput(); BytesRefBuilder target = new BytesRefBuilder(); while (target.length() < pbr.length()) { switch (randomIntBetween(0, 10)) { case 6:// w ww .j a v a 2s. com case 5: target.append(new BytesRef(new byte[] { streamInput.readByte() })); break; case 4: case 3: BytesRef bytesRef = streamInput .readBytesRef(scaledRandomIntBetween(1, pbr.length() - target.length())); target.append(bytesRef); break; default: byte[] buffer = new byte[scaledRandomIntBetween(1, pbr.length() - target.length())]; int offset = scaledRandomIntBetween(0, buffer.length - 1); int read = streamInput.read(buffer, offset, buffer.length - offset); target.append(new BytesRef(buffer, offset, read)); break; } } assertEquals(pbr.length(), target.length()); BytesRef targetBytes = target.get(); assertArrayEquals(BytesReference.toBytes(pbr), Arrays.copyOfRange(targetBytes.bytes, targetBytes.offset, targetBytes.length)); }
From source file:org.elasticsearch.common.bytes.AbstractBytesReferenceTestCase.java
License:Apache License
public void testIterator() throws IOException { int length = randomIntBetween(10, PAGE_SIZE * randomIntBetween(2, 8)); BytesReference pbr = newBytesReference(length); BytesRefIterator iterator = pbr.iterator(); BytesRef ref;// www . j a va 2 s . c o m BytesRefBuilder builder = new BytesRefBuilder(); while ((ref = iterator.next()) != null) { builder.append(ref); } assertArrayEquals(BytesReference.toBytes(pbr), BytesRef.deepCopyOf(builder.toBytesRef()).bytes); }
From source file:org.elasticsearch.common.bytes.AbstractBytesReferenceTestCase.java
License:Apache License
public void testSliceIterator() throws IOException { int length = randomIntBetween(10, PAGE_SIZE * randomIntBetween(2, 8)); BytesReference pbr = newBytesReference(length); int sliceOffset = randomIntBetween(0, pbr.length()); int sliceLength = randomIntBetween(0, pbr.length() - sliceOffset); BytesReference slice = pbr.slice(sliceOffset, sliceLength); BytesRefIterator iterator = slice.iterator(); BytesRef ref = null;/*from w w w .jav a2 s . co m*/ BytesRefBuilder builder = new BytesRefBuilder(); while ((ref = iterator.next()) != null) { builder.append(ref); } assertArrayEquals(BytesReference.toBytes(slice), BytesRef.deepCopyOf(builder.toBytesRef()).bytes); }
From source file:org.elasticsearch.common.bytes.AbstractBytesReferenceTestCase.java
License:Apache License
public void testIteratorRandom() throws IOException { int length = randomIntBetween(10, PAGE_SIZE * randomIntBetween(2, 8)); BytesReference pbr = newBytesReference(length); if (randomBoolean()) { int sliceOffset = randomIntBetween(0, pbr.length()); int sliceLength = randomIntBetween(0, pbr.length() - sliceOffset); pbr = pbr.slice(sliceOffset, sliceLength); }// w ww. ja va2s . c om if (randomBoolean()) { pbr = new BytesArray(pbr.toBytesRef()); } BytesRefIterator iterator = pbr.iterator(); BytesRef ref = null; BytesRefBuilder builder = new BytesRefBuilder(); while ((ref = iterator.next()) != null) { builder.append(ref); } assertArrayEquals(BytesReference.toBytes(pbr), BytesRef.deepCopyOf(builder.toBytesRef()).bytes); }
From source file:org.elasticsearch.common.bytes.CompositeBytesReferenceTests.java
License:Apache License
public void testCompositeBuffer() throws IOException { List<BytesReference> referenceList = newRefList(randomIntBetween(1, PAGE_SIZE * 2)); BytesReference ref = new CompositeBytesReference(referenceList.toArray(new BytesReference[0])); BytesRefIterator iterator = ref.iterator(); BytesRefBuilder builder = new BytesRefBuilder(); for (BytesReference reference : referenceList) { BytesRefIterator innerIter = reference.iterator(); // sometimes we have a paged ref - pull an iter and walk all pages! BytesRef scratch;//from www . j a v a 2 s .c o m while ((scratch = innerIter.next()) != null) { BytesRef next = iterator.next(); assertNotNull(next); assertEquals(next, scratch); builder.append(next); } } assertNull(iterator.next()); int offset = 0; for (BytesReference reference : referenceList) { assertEquals(reference, ref.slice(offset, reference.length())); int probes = randomIntBetween(Math.min(10, reference.length()), reference.length()); for (int i = 0; i < probes; i++) { int index = randomIntBetween(0, reference.length() - 1); assertEquals(ref.get(offset + index), reference.get(index)); } offset += reference.length(); } BytesArray array = new BytesArray(builder.toBytesRef()); assertEquals(array, ref); assertEquals(array.hashCode(), ref.hashCode()); BytesStreamOutput output = new BytesStreamOutput(); ref.writeTo(output); assertEquals(array, output.bytes()); }