Example usage for org.apache.lucene.document Document getField

List of usage examples for org.apache.lucene.document Document getField

Introduction

In this page you can find the example usage for org.apache.lucene.document Document getField.

Prototype

public final IndexableField getField(String name) 

Source Link

Document

Returns a field with the given name if any exist in this document, or null.

Usage

From source file:org.elasticsearch.test.integration.search.suggest.CompletionPostingsFormatTest.java

License:Apache License

@Test
public void testDuellCompletions() throws IOException, NoSuchFieldException, SecurityException,
        IllegalArgumentException, IllegalAccessException {
    final boolean preserveSeparators = getRandom().nextBoolean();
    final boolean preservePositionIncrements = getRandom().nextBoolean();
    final boolean usePayloads = getRandom().nextBoolean();
    final int options = preserveSeparators ? AnalyzingSuggester.PRESERVE_SEP : 0;

    XAnalyzingSuggester reference = new XAnalyzingSuggester(new StandardAnalyzer(TEST_VERSION_CURRENT),
            new StandardAnalyzer(TEST_VERSION_CURRENT), options, 256, -1, null, false, 1);
    reference.setPreservePositionIncrements(preservePositionIncrements);
    LineFileDocs docs = new LineFileDocs(getRandom());
    int num = atLeast(150);
    final String[] titles = new String[num];
    final long[] weights = new long[num];
    for (int i = 0; i < titles.length; i++) {
        Document nextDoc = docs.nextDoc();
        IndexableField field = nextDoc.getField("title");
        titles[i] = field.stringValue();
        weights[i] = between(0, 100);// www.j  a va2 s .c o m

    }
    docs.close();
    final TermFreqIterator primaryIter = new TermFreqIterator() {
        int index = 0;
        long currentWeight = -1;

        @Override
        public Comparator<BytesRef> getComparator() {
            return null;
        }

        @Override
        public BytesRef next() throws IOException {
            if (index < titles.length) {
                currentWeight = weights[index];
                return new BytesRef(titles[index++]);
            }
            return null;
        }

        @Override
        public long weight() {
            return currentWeight;
        }

    };
    TermFreqIterator iter;
    if (usePayloads) {
        iter = new TermFreqPayloadIterator() {
            @Override
            public long weight() {
                return primaryIter.weight();
            }

            @Override
            public Comparator<BytesRef> getComparator() {
                return primaryIter.getComparator();
            }

            @Override
            public BytesRef next() throws IOException {
                return primaryIter.next();
            }

            @Override
            public BytesRef payload() {
                return new BytesRef(Long.toString(weight()));
            }
        };
    } else {
        iter = primaryIter;
    }
    reference.build(iter);
    PostingsFormatProvider provider = new PreBuiltPostingsFormatProvider(new ElasticSearch090PostingsFormat());

    NamedAnalyzer namedAnalzyer = new NamedAnalyzer("foo", new StandardAnalyzer(TEST_VERSION_CURRENT));
    final CompletionFieldMapper mapper = new CompletionFieldMapper(new Names("foo"), namedAnalzyer,
            namedAnalzyer, provider, null, usePayloads, preserveSeparators, preservePositionIncrements);
    Lookup buildAnalyzingLookup = buildAnalyzingLookup(mapper, titles, titles, weights);
    Field field = buildAnalyzingLookup.getClass().getDeclaredField("maxAnalyzedPathsForOneInput");
    field.setAccessible(true);
    Field refField = reference.getClass().getDeclaredField("maxAnalyzedPathsForOneInput");
    refField.setAccessible(true);
    assertThat(refField.get(reference), equalTo(field.get(buildAnalyzingLookup)));

    for (int i = 0; i < titles.length; i++) {
        int res = between(1, 10);
        final StringBuilder builder = new StringBuilder();
        SuggestUtils.analyze(namedAnalzyer.tokenStream("foo", titles[i]), new SuggestUtils.TokenConsumer() {
            @Override
            public void nextToken() throws IOException {
                if (builder.length() == 0) {
                    builder.append(this.charTermAttr.toString());
                }
            }
        });
        String firstTerm = builder.toString();
        String prefix = firstTerm.isEmpty() ? "" : firstTerm.substring(0, between(1, firstTerm.length()));
        List<LookupResult> refLookup = reference.lookup(prefix, false, res);
        List<LookupResult> lookup = buildAnalyzingLookup.lookup(prefix, false, res);
        assertThat(refLookup.toString(), lookup.size(), equalTo(refLookup.size()));
        for (int j = 0; j < refLookup.size(); j++) {
            assertThat(lookup.get(j).key, equalTo(refLookup.get(j).key));
            assertThat("prefix: " + prefix + " " + j + " -- missmatch cost: " + lookup.get(j).key + " - "
                    + lookup.get(j).value + " | " + refLookup.get(j).key + " - " + refLookup.get(j).value,
                    lookup.get(j).value, equalTo(refLookup.get(j).value));
            assertThat(lookup.get(j).payload, equalTo(refLookup.get(j).payload));
            if (usePayloads) {
                assertThat(lookup.get(j).payload.utf8ToString(), equalTo(Long.toString(lookup.get(j).value)));
            }
        }
    }
}

From source file:org.elasticsearch.test.unit.index.mapper.all.SimpleAllMapperTests.java

License:Apache License

@Test
public void testSimpleAllMappers() throws Exception {
    String mapping = copyToStringFromClasspath("/org/elasticsearch/test/unit/index/mapper/all/mapping.json");
    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    byte[] json = copyToBytesFromClasspath("/org/elasticsearch/test/unit/index/mapper/all/test1.json");
    Document doc = docMapper.parse(new BytesArray(json)).rootDoc();
    AllField field = (AllField) doc.getField("_all");
    AllEntries allEntries = ((AllTokenStream) field.tokenStream(docMapper.mappers().indexAnalyzer()))
            .allEntries();//from   w w  w . j av  a  2  s  . com
    assertThat(allEntries.fields().size(), equalTo(3));
    assertThat(allEntries.fields().contains("address.last.location"), equalTo(true));
    assertThat(allEntries.fields().contains("name.last"), equalTo(true));
    assertThat(allEntries.fields().contains("simple1"), equalTo(true));
    FieldMapper mapper = docMapper.mappers().smartNameFieldMapper("_all");
    assertThat(mapper.queryStringTermQuery(new Term("_all", "foobar")),
            Matchers.instanceOf(AllTermQuery.class));
}

From source file:org.elasticsearch.test.unit.index.mapper.all.SimpleAllMapperTests.java

License:Apache License

@Test
public void testAllMappersNoBoost() throws Exception {
    String mapping = copyToStringFromClasspath(
            "/org/elasticsearch/test/unit/index/mapper/all/noboost-mapping.json");
    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    byte[] json = copyToBytesFromClasspath("/org/elasticsearch/test/unit/index/mapper/all/test1.json");
    Document doc = docMapper.parse(new BytesArray(json)).rootDoc();
    AllField field = (AllField) doc.getField("_all");
    AllEntries allEntries = ((AllTokenStream) field.tokenStream(docMapper.mappers().indexAnalyzer()))
            .allEntries();/*w w  w.j a  v  a 2  s.c  om*/
    assertThat(allEntries.fields().size(), equalTo(3));
    assertThat(allEntries.fields().contains("address.last.location"), equalTo(true));
    assertThat(allEntries.fields().contains("name.last"), equalTo(true));
    assertThat(allEntries.fields().contains("simple1"), equalTo(true));
    FieldMapper mapper = docMapper.mappers().smartNameFieldMapper("_all");
    assertThat(mapper.queryStringTermQuery(new Term("_all", "foobar")), Matchers.instanceOf(TermQuery.class));
}

From source file:org.elasticsearch.test.unit.index.mapper.all.SimpleAllMapperTests.java

License:Apache License

@Test
public void testAllMappersTermQuery() throws Exception {
    String mapping = copyToStringFromClasspath(
            "/org/elasticsearch/test/unit/index/mapper/all/mapping_omit_positions_on_all.json");
    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    byte[] json = copyToBytesFromClasspath("/org/elasticsearch/test/unit/index/mapper/all/test1.json");
    Document doc = docMapper.parse(new BytesArray(json)).rootDoc();
    AllField field = (AllField) doc.getField("_all");
    AllEntries allEntries = ((AllTokenStream) field.tokenStream(docMapper.mappers().indexAnalyzer()))
            .allEntries();//  w w w.  j  ava  2  s .  co m
    assertThat(allEntries.fields().size(), equalTo(3));
    assertThat(allEntries.fields().contains("address.last.location"), equalTo(true));
    assertThat(allEntries.fields().contains("name.last"), equalTo(true));
    assertThat(allEntries.fields().contains("simple1"), equalTo(true));
    FieldMapper mapper = docMapper.mappers().smartNameFieldMapper("_all");
    assertThat(mapper.queryStringTermQuery(new Term("_all", "foobar")), Matchers.instanceOf(TermQuery.class));

}

From source file:org.elasticsearch.test.unit.index.mapper.all.SimpleAllMapperTests.java

License:Apache License

@Test
public void testSimpleAllMappersWithReparse() throws Exception {
    String mapping = copyToStringFromClasspath("/org/elasticsearch/test/unit/index/mapper/all/mapping.json");
    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    String builtMapping = docMapper.mappingSource().string();
    //        System.out.println(builtMapping);
    // reparse it
    DocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping);
    byte[] json = copyToBytesFromClasspath("/org/elasticsearch/test/unit/index/mapper/all/test1.json");
    Document doc = builtDocMapper.parse(new BytesArray(json)).rootDoc();

    AllField field = (AllField) doc.getField("_all");
    AllEntries allEntries = ((AllTokenStream) field.tokenStream(docMapper.mappers().indexAnalyzer()))
            .allEntries();//from  w w w.java2  s  .  c  o  m
    assertThat(allEntries.fields().size(), equalTo(3));
    assertThat(allEntries.fields().contains("address.last.location"), equalTo(true));
    assertThat(allEntries.fields().contains("name.last"), equalTo(true));
    assertThat(allEntries.fields().contains("simple1"), equalTo(true));
}

From source file:org.elasticsearch.test.unit.index.mapper.all.SimpleAllMapperTests.java

License:Apache License

@Test
public void testSimpleAllMappersWithStore() throws Exception {
    String mapping = copyToStringFromClasspath(
            "/org/elasticsearch/test/unit/index/mapper/all/store-mapping.json");
    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    byte[] json = copyToBytesFromClasspath("/org/elasticsearch/test/unit/index/mapper/all/test1.json");
    Document doc = docMapper.parse(new BytesArray(json)).rootDoc();
    AllField field = (AllField) doc.getField("_all");
    AllEntries allEntries = ((AllTokenStream) field.tokenStream(docMapper.mappers().indexAnalyzer()))
            .allEntries();/*from   ww  w .j  av a2 s. com*/
    assertThat(allEntries.fields().size(), equalTo(2));
    assertThat(allEntries.fields().contains("name.last"), equalTo(true));
    assertThat(allEntries.fields().contains("simple1"), equalTo(true));

    String text = field.stringValue();
    assertThat(text, equalTo(allEntries.buildText()));
}

From source file:org.elasticsearch.test.unit.index.mapper.all.SimpleAllMapperTests.java

License:Apache License

@Test
public void testSimpleAllMappersWithReparseWithStore() throws Exception {
    String mapping = copyToStringFromClasspath(
            "/org/elasticsearch/test/unit/index/mapper/all/store-mapping.json");
    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    String builtMapping = docMapper.mappingSource().string();
    System.out.println(builtMapping);
    // reparse it
    DocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping);
    byte[] json = copyToBytesFromClasspath("/org/elasticsearch/test/unit/index/mapper/all/test1.json");
    Document doc = builtDocMapper.parse(new BytesArray(json)).rootDoc();

    AllField field = (AllField) doc.getField("_all");
    AllEntries allEntries = ((AllTokenStream) field.tokenStream(docMapper.mappers().indexAnalyzer()))
            .allEntries();//from w  w w . ja  va  2  s .  c o m
    assertThat(allEntries.fields().size(), equalTo(2));
    assertThat(allEntries.fields().contains("name.last"), equalTo(true));
    assertThat(allEntries.fields().contains("simple1"), equalTo(true));

    String text = field.stringValue();
    assertThat(text, equalTo(allEntries.buildText()));
}

From source file:org.elasticsearch.test.unit.index.mapper.boost.FieldLevelBoostTests.java

License:Apache License

@Test
public void testFieldLevelBoost() throws Exception {
    String mapping = XContentFactory.jsonBuilder().startObject().startObject("person").startObject("properties")
            .startObject("str_field").field("type", "string").endObject().startObject("int_field")
            .field("type", "integer").field("omit_norms", false).endObject().startObject("byte_field")
            .field("type", "byte").field("omit_norms", false).endObject().startObject("date_field")
            .field("type", "date").field("omit_norms", false).endObject().startObject("double_field")
            .field("type", "double").field("omit_norms", false).endObject().startObject("float_field")
            .field("type", "float").field("omit_norms", false).endObject().startObject("long_field")
            .field("type", "long").field("omit_norms", false).endObject().startObject("short_field")
            .field("type", "short").field("omit_norms", false).endObject().string();

    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    BytesReference json = XContentFactory.jsonBuilder().startObject().field("_id", "1").startObject("str_field")
            .field("boost", 2.0).field("value", "some name").endObject().startObject("int_field")
            .field("boost", 3.0).field("value", 10).endObject().startObject("byte_field").field("boost", 4.0)
            .field("value", 20).endObject().startObject("date_field").field("boost", 5.0)
            .field("value", "2012-01-10").endObject().startObject("double_field").field("boost", 6.0)
            .field("value", 30.0).endObject().startObject("float_field").field("boost", 7.0)
            .field("value", 40.0).endObject().startObject("long_field").field("boost", 8.0).field("value", 50)
            .endObject().startObject("short_field").field("boost", 9.0).field("value", 60).endObject().bytes();
    Document doc = docMapper.parse(json).rootDoc();

    IndexableField f = doc.getField("str_field");
    assertThat((double) f.boost(), closeTo(2.0, 0.001));

    f = doc.getField("int_field");
    assertThat((double) f.boost(), closeTo(3.0, 0.001));

    f = doc.getField("byte_field");
    assertThat((double) f.boost(), closeTo(4.0, 0.001));

    f = doc.getField("date_field");
    assertThat((double) f.boost(), closeTo(5.0, 0.001));

    f = doc.getField("double_field");
    assertThat((double) f.boost(), closeTo(6.0, 0.001));

    f = doc.getField("float_field");
    assertThat((double) f.boost(), closeTo(7.0, 0.001));

    f = doc.getField("long_field");
    assertThat((double) f.boost(), closeTo(8.0, 0.001));

    f = doc.getField("short_field");
    assertThat((double) f.boost(), closeTo(9.0, 0.001));
}

From source file:org.elasticsearch.test.unit.index.mapper.dynamictemplate.genericstore.GenericStoreDynamicTemplateTests.java

License:Apache License

@Test
public void testSimple() throws Exception {
    String mapping = copyToStringFromClasspath(
            "/org/elasticsearch/test/unit/index/mapper/dynamictemplate/genericstore/test-mapping.json");
    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    byte[] json = copyToBytesFromClasspath(
            "/org/elasticsearch/test/unit/index/mapper/dynamictemplate/genericstore/test-data.json");
    Document doc = docMapper.parse(new BytesArray(json)).rootDoc();

    IndexableField f = doc.getField("name");
    assertThat(f.name(), equalTo("name"));
    assertThat(f.stringValue(), equalTo("some name"));
    assertThat(f.fieldType().stored(), equalTo(true));

    FieldMappers fieldMappers = docMapper.mappers().fullName("name");
    assertThat(fieldMappers.mappers().size(), equalTo(1));
    assertThat(fieldMappers.mapper().fieldType().stored(), equalTo(true));

    f = doc.getField("age");
    assertThat(f.name(), equalTo("age"));
    assertThat(f.fieldType().stored(), equalTo(true));

    fieldMappers = docMapper.mappers().fullName("age");
    assertThat(fieldMappers.mappers().size(), equalTo(1));
    assertThat(fieldMappers.mapper().fieldType().stored(), equalTo(true));
}

From source file:org.elasticsearch.test.unit.index.mapper.dynamictemplate.pathmatch.PathMatchDynamicTemplateTests.java

License:Apache License

@Test
public void testSimple() throws Exception {
    String mapping = copyToStringFromClasspath(
            "/org/elasticsearch/test/unit/index/mapper/dynamictemplate/pathmatch/test-mapping.json");
    DocumentMapper docMapper = MapperTests.newParser().parse(mapping);
    byte[] json = copyToBytesFromClasspath(
            "/org/elasticsearch/test/unit/index/mapper/dynamictemplate/pathmatch/test-data.json");
    Document doc = docMapper.parse(new BytesArray(json)).rootDoc();

    IndexableField f = doc.getField("name");
    assertThat(f.name(), equalTo("name"));
    assertThat(f.stringValue(), equalTo("top_level"));
    assertThat(f.fieldType().stored(), equalTo(false));

    FieldMappers fieldMappers = docMapper.mappers().fullName("name");
    assertThat(fieldMappers.mappers().size(), equalTo(1));
    assertThat(fieldMappers.mapper().fieldType().stored(), equalTo(false));

    f = doc.getField("obj1.name");
    assertThat(f.name(), equalTo("obj1.name"));
    assertThat(f.fieldType().stored(), equalTo(true));

    fieldMappers = docMapper.mappers().fullName("obj1.name");
    assertThat(fieldMappers.mappers().size(), equalTo(1));
    assertThat(fieldMappers.mapper().fieldType().stored(), equalTo(true));

    f = doc.getField("obj1.obj2.name");
    assertThat(f.name(), equalTo("obj1.obj2.name"));
    assertThat(f.fieldType().stored(), equalTo(false));

    fieldMappers = docMapper.mappers().fullName("obj1.obj2.name");
    assertThat(fieldMappers.mappers().size(), equalTo(1));
    assertThat(fieldMappers.mapper().fieldType().stored(), equalTo(false));

    // verify more complex path_match expressions

    fieldMappers = docMapper.mappers().fullName("obj3.obj4.prop1");
    assertThat(fieldMappers.mappers().size(), equalTo(1));
}