Example usage for org.apache.lucene.document StoredField setLongValue

List of usage examples for org.apache.lucene.document StoredField setLongValue

Introduction

In this page you can find the example usage for org.apache.lucene.document StoredField setLongValue.

Prototype

public void setLongValue(long value) 

Source Link

Document

Expert: change the value of this field.

Usage

From source file:org.apache.solr.uninverting.TestFieldCache.java

License:Apache License

public void testLongFieldCache() throws IOException {
    Directory dir = newDirectory();//from   ww w  . j  a v a  2  s  . co  m
    IndexWriterConfig cfg = newIndexWriterConfig(new MockAnalyzer(random()));
    cfg.setMergePolicy(newLogMergePolicy());
    RandomIndexWriter iw = new RandomIndexWriter(random(), dir, cfg);
    Document doc = new Document();
    LongPoint field = new LongPoint("f", 0L);
    StoredField field2 = new StoredField("f", 0L);
    doc.add(field);
    doc.add(field2);
    final long[] values = new long[TestUtil.nextInt(random(), 1, 10)];
    Set<Integer> missing = new HashSet<>();
    for (int i = 0; i < values.length; ++i) {
        final long v;
        switch (random().nextInt(10)) {
        case 0:
            v = Long.MIN_VALUE;
            break;
        case 1:
            v = 0;
            break;
        case 2:
            v = Long.MAX_VALUE;
            break;
        default:
            v = TestUtil.nextLong(random(), -10, 10);
            break;
        }
        values[i] = v;
        if (v == 0 && random().nextBoolean()) {
            // missing
            iw.addDocument(new Document());
            missing.add(i);
        } else {
            field.setLongValue(v);
            field2.setLongValue(v);
            iw.addDocument(doc);
        }
    }
    iw.forceMerge(1);
    final DirectoryReader reader = iw.getReader();
    final NumericDocValues longs = FieldCache.DEFAULT.getNumerics(getOnlyLeafReader(reader), "f",
            FieldCache.LONG_POINT_PARSER);
    for (int i = 0; i < values.length; ++i) {
        if (missing.contains(i) == false) {
            assertEquals(i, longs.nextDoc());
            assertEquals(values[i], longs.longValue());
        }
    }
    assertEquals(NO_MORE_DOCS, longs.nextDoc());
    reader.close();
    iw.close();
    dir.close();
}