Example usage for org.apache.lucene.util BytesRefBuilder append

List of usage examples for org.apache.lucene.util BytesRefBuilder append

Introduction

In this page you can find the example usage for org.apache.lucene.util BytesRefBuilder append.

Prototype

public void append(BytesRefBuilder builder) 

Source Link

Document

Append the provided bytes to this builder.

Usage

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());
}