当前位置: 首页>>代码示例>>Java>>正文


Java ParseField类代码示例

本文整理汇总了Java中org.elasticsearch.common.ParseField的典型用法代码示例。如果您正苦于以下问题:Java ParseField类的具体用法?Java ParseField怎么用?Java ParseField使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ParseField类属于org.elasticsearch.common包,在下文中一共展示了ParseField类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: declareMetaDataFields

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
/**
 * we need to declare parse fields for each metadata field, except for _ID, _INDEX and _TYPE which are
 * handled individually. All other fields are parsed to an entry in the fields map
 */
private static void declareMetaDataFields(ObjectParser<Map<String, Object>, Void> parser) {
    for (String metadatafield : MapperService.getAllMetaFields()) {
        if (metadatafield.equals(Fields._ID) == false && metadatafield.equals(Fields._INDEX) == false
                && metadatafield.equals(Fields._TYPE) == false) {
            parser.declareField((map, field) -> {
                @SuppressWarnings("unchecked")
                Map<String, SearchHitField> fieldMap = (Map<String, SearchHitField>) map.computeIfAbsent(Fields.FIELDS,
                        v -> new HashMap<String, SearchHitField>());
                fieldMap.put(field.getName(), field);
            }, (p, c) -> {
                List<Object> values = new ArrayList<>();
                values.add(parseStoredFieldsValue(p));
                return new SearchHitField(metadatafield, values);
            }, new ParseField(metadatafield), ValueType.VALUE);
        }
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:22,代码来源:SearchHit.java

示例2: queueingConsumer

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
/**
 * Creates the consumer that does the "field just arrived" behavior. If the targetObject hasn't been built then it queues the value.
 * Otherwise it just applies the value just like {@linkplain ObjectParser} does.
 */
private <T> BiConsumer<Target, T> queueingConsumer(BiConsumer<Value, T> consumer, ParseField parseField) {
    return (target, v) -> {
        if (target.targetObject != null) {
            // The target has already been built. Just apply the consumer now.
            consumer.accept(target.targetObject, v);
            return;
        }
        /*
         * The target hasn't been built. Queue the consumer. The next two lines are the only allocations that ConstructingObjectParser
         * does during parsing other than the boxing the ObjectParser might do. The first one is to preserve a snapshot of the current
         * location so we can add it to the error message if parsing fails. The second one (the lambda) is the actual operation being
         * queued. Note that we don't do any of this if the target object has already been built.
         */
        XContentLocation location = target.parser.getTokenLocation();
        target.queue(targetObject -> {
            try {
                consumer.accept(targetObject, v);
            } catch (Exception e) {
                throw new ParsingException(location,
                        "[" + objectParser.getName() + "] failed to parse field [" + parseField.getPreferredName() + "]", e);
            }
        });
    };
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:29,代码来源:ConstructingObjectParser.java

示例3: testNullDeclares

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testNullDeclares() {
    ObjectParser<Void, Void> objectParser = new ObjectParser<>("foo");
    Exception e = expectThrows(IllegalArgumentException.class,
            () -> objectParser.declareField(null, (r, c) -> null, new ParseField("test"), ObjectParser.ValueType.STRING));
    assertEquals("[consumer] is required", e.getMessage());
    e = expectThrows(IllegalArgumentException.class, () -> objectParser.declareField(
            (o, v) -> {}, (ContextParser<Void, Object>) null,
            new ParseField("test"), ObjectParser.ValueType.STRING));
    assertEquals("[parser] is required", e.getMessage());
    e = expectThrows(IllegalArgumentException.class, () -> objectParser.declareField(
            (o, v) -> {}, (CheckedFunction<XContentParser, Object, IOException>) null,
            new ParseField("test"), ObjectParser.ValueType.STRING));
    assertEquals("[parser] is required", e.getMessage());
    e = expectThrows(IllegalArgumentException.class, () -> objectParser.declareField(
            (o, v) -> {}, (r, c) -> null, null, ObjectParser.ValueType.STRING));
    assertEquals("[parseField] is required", e.getMessage());
    e = expectThrows(IllegalArgumentException.class, () -> objectParser.declareField(
            (o, v) -> {}, (r, c) -> null, new ParseField("test"), null));
    assertEquals("[type] is required", e.getMessage());
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:21,代码来源:ObjectParserTests.java

示例4: testObjectOrDefault

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testObjectOrDefault() throws IOException {
    XContentParser parser = createParser(JsonXContent.jsonXContent, "{\"object\" : { \"test\": 2}}");
    ObjectParser<StaticTestStruct, Void> objectParser = new ObjectParser<>("foo", StaticTestStruct::new);
    objectParser.declareInt(StaticTestStruct::setTest, new ParseField("test"));
    objectParser.declareObjectOrDefault(StaticTestStruct::setObject, objectParser, StaticTestStruct::new, new ParseField("object"));
    StaticTestStruct s = objectParser.parse(parser, null);
    assertEquals(s.object.test, 2);
    parser = createParser(JsonXContent.jsonXContent, "{\"object\" : false }");
    s = objectParser.parse(parser, null);
    assertNull(s.object);

    parser = createParser(JsonXContent.jsonXContent, "{\"object\" : true }");
    s = objectParser.parse(parser, null);
    assertNotNull(s.object);
    assertEquals(s.object.test, 0);

}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:18,代码来源:ObjectParserTests.java

示例5: testFailOnValueType

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testFailOnValueType() throws IOException {
    XContentParser parser = createParser(JsonXContent.jsonXContent, "{\"numeric_value\" : false}");
    class TestStruct {
        public String test;
    }
    ObjectParser<TestStruct, Void> objectParser = new ObjectParser<>("foo");
    TestStruct s = new TestStruct();

    objectParser.declareField((i, c, x) -> c.test = i.text(), new ParseField("numeric_value"), ObjectParser.ValueType.FLOAT);
    try {
        objectParser.parse(parser, s, null);
        fail("wrong type - must be number");
    } catch (IllegalArgumentException ex) {
        assertEquals(ex.getMessage(), "[foo] numeric_value doesn't support values of type: VALUE_BOOLEAN");
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:17,代码来源:ObjectParserTests.java

示例6: testParseNested

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testParseNested() throws IOException {
    XContentParser parser = createParser(JsonXContent.jsonXContent, "{ \"test\" : 1, \"object\" : { \"test\": 2}}");
    class TestStruct {
        public int test;
        TestStruct object;
    }
    ObjectParser<TestStruct, Void> objectParser = new ObjectParser<>("foo");
    TestStruct s = new TestStruct();
    s.object = new TestStruct();
    objectParser.declareField((i, c, x) -> c.test = i.intValue(), new ParseField("test"), ValueType.INT);
    objectParser.declareField((i, c, x) -> objectParser.parse(parser, c.object, null), new ParseField("object"),
            ValueType.OBJECT);
    objectParser.parse(parser, s, null);
    assertEquals(s.test, 1);
    assertEquals(s.object.test, 2);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:17,代码来源:ObjectParserTests.java

示例7: testParseNamedObjectInOrderNotSupported

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testParseNamedObjectInOrderNotSupported() throws IOException {
    XContentParser parser = createParser(JsonXContent.jsonXContent,
              "{\"named\": [\n"
            + "  {\"a\": {}}"
            + "]}");

    // Create our own parser for this test so we can disable support for the "ordered" mode specified by the array above
    ObjectParser<NamedObjectHolder, Void> objectParser = new ObjectParser<>("named_object_holder",
            NamedObjectHolder::new);
    objectParser.declareNamedObjects(NamedObjectHolder::setNamed, NamedObject.PARSER, new ParseField("named"));

    // Now firing the xml through it fails
    ParsingException e = expectThrows(ParsingException.class, () -> objectParser.apply(parser, null));
    assertEquals("[named_object_holder] failed to parse field [named]", e.getMessage());
    assertEquals("[named] doesn't support arrays. Use a single object with multiple fields.", e.getCause().getMessage());
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:17,代码来源:ObjectParserTests.java

示例8: testIgnoreUnknownFields

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testIgnoreUnknownFields() throws IOException {
    XContentBuilder b = XContentBuilder.builder(XContentType.JSON.xContent());
    b.startObject();
    {
        b.field("test", "foo");
        b.field("junk", 2);
    }
    b.endObject();
    b = shuffleXContent(b);
    XContentParser parser = createParser(JsonXContent.jsonXContent, b.bytes());

    class TestStruct {
        public String test;
    }
    ObjectParser<TestStruct, Void> objectParser = new ObjectParser<>("foo", true, null);
    objectParser.declareField((i, c, x) -> c.test = i.text(), new ParseField("test"), ObjectParser.ValueType.STRING);
    TestStruct s = objectParser.parse(parser, new TestStruct(), null);
    assertEquals(s.test, "foo");
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:20,代码来源:ObjectParserTests.java

示例9: testIgnoreUnknownObjects

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testIgnoreUnknownObjects() throws IOException {
    XContentBuilder b = XContentBuilder.builder(XContentType.JSON.xContent());
    b.startObject();
    {
        b.field("test", "foo");
        b.startObject("junk");
        {
            b.field("really", "junk");
        }
        b.endObject();
    }
    b.endObject();
    b = shuffleXContent(b);
    XContentParser parser = createParser(JsonXContent.jsonXContent, b.bytes());

    class TestStruct {
        public String test;
    }
    ObjectParser<TestStruct, Void> objectParser = new ObjectParser<>("foo", true, null);
    objectParser.declareField((i, c, x) -> c.test = i.text(), new ParseField("test"), ObjectParser.ValueType.STRING);
    TestStruct s = objectParser.parse(parser, new TestStruct(), null);
    assertEquals(s.test, "foo");
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:24,代码来源:ObjectParserTests.java

示例10: testIgnoreUnknownArrays

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testIgnoreUnknownArrays() throws IOException {
    XContentBuilder b = XContentBuilder.builder(XContentType.JSON.xContent());
    b.startObject();
    {
        b.field("test", "foo");
        b.startArray("junk");
        {
            b.startObject();
            {
                b.field("really", "junk");
            }
            b.endObject();
        }
        b.endArray();
    }
    b.endObject();
    b = shuffleXContent(b);
    XContentParser parser = createParser(JsonXContent.jsonXContent, b.bytes());
    class TestStruct {
        public String test;
    }
    ObjectParser<TestStruct, Void> objectParser = new ObjectParser<>("foo", true, null);
    objectParser.declareField((i, c, x) -> c.test = i.text(), new ParseField("test"), ObjectParser.ValueType.STRING);
    TestStruct s = objectParser.parse(parser, new TestStruct(), null);
    assertEquals(s.test, "foo");
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:27,代码来源:ObjectParserTests.java

示例11: testNullDeclares

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public void testNullDeclares() {
    ConstructingObjectParser<Void, Void> objectParser = new ConstructingObjectParser<>("foo", a -> null);
    Exception e = expectThrows(IllegalArgumentException.class,
            () -> objectParser.declareField(null, (r, c) -> null, new ParseField("test"), ObjectParser.ValueType.STRING));
    assertEquals("[consumer] is required", e.getMessage());
    e = expectThrows(IllegalArgumentException.class, () -> objectParser.declareField(
            (o, v) -> {}, (ContextParser<Void, Object>) null,
            new ParseField("test"), ObjectParser.ValueType.STRING));
    assertEquals("[parser] is required", e.getMessage());
    e = expectThrows(IllegalArgumentException.class, () -> objectParser.declareField(
            (o, v) -> {}, (CheckedFunction<XContentParser, Object, IOException>) null,
            new ParseField("test"), ObjectParser.ValueType.STRING));
    assertEquals("[parser] is required", e.getMessage());
    e = expectThrows(IllegalArgumentException.class, () -> objectParser.declareField(
            (o, v) -> {}, (r, c) -> null, null, ObjectParser.ValueType.STRING));
    assertEquals("[parseField] is required", e.getMessage());
    e = expectThrows(IllegalArgumentException.class, () -> objectParser.declareField(
            (o, v) -> {}, (r, c) -> null, new ParseField("test"), null));
    assertEquals("[type] is required", e.getMessage());
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:21,代码来源:ConstructingObjectParserTests.java

示例12: ScriptParameterParser

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public ScriptParameterParser(Set<String> parameterNames) {
    ESLogger logger = Loggers.getLogger(getClass());
    deprecationLogger = new DeprecationLogger(logger);
    if (parameterNames == null || parameterNames.isEmpty()) {
        inlineParameters = Collections.singleton(ScriptService.SCRIPT_INLINE);
        fileParameters = Collections.singleton(ScriptService.SCRIPT_FILE);
        indexedParameters = Collections.singleton(ScriptService.SCRIPT_ID);
    } else {
        inlineParameters = new HashSet<>();
        fileParameters = new HashSet<>();
        indexedParameters = new HashSet<>();
        for (String parameterName : parameterNames) {
            if (ParseFieldMatcher.EMPTY.match(parameterName, ScriptService.SCRIPT_LANG)) {
                throw new IllegalArgumentException("lang is reserved and cannot be used as a parameter name");
            }
            inlineParameters.add(new ParseField(parameterName));
            fileParameters.add(new ParseField(parameterName + FILE_SUFFIX));
            indexedParameters.add(new ParseField(parameterName + INDEXED_SUFFIX));
        }
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:22,代码来源:ScriptParameterParser.java

示例13: createFactory

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
@Override
protected MatrixStatsAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType,
                                                      ValueType targetValueType, Map<ParseField, Object> otherOptions) {
    MatrixStatsAggregationBuilder builder = new MatrixStatsAggregationBuilder(aggregationName);
    String mode = (String)otherOptions.get(MULTIVALUE_MODE_FIELD);
    if (mode != null) {
        builder.multiValueMode(MultiValueMode.fromString(mode));
    }
    return builder;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:11,代码来源:MatrixStatsParser.java

示例14: getNamedXContentsExt

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
private static List<NamedXContentRegistry.Entry> getNamedXContentsExt() {
    List<NamedXContentRegistry.Entry> entries = new ArrayList<>();
    entries.add(new NamedXContentRegistry.Entry(BaseCustomResponseSection.class, new ParseField("custom1"),
            CustomResponseSection1::fromXContent));
    entries.add(new NamedXContentRegistry.Entry(BaseCustomResponseSection.class, new ParseField("custom2"),
            CustomResponseSection2::fromXContent));
    return entries;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:9,代码来源:RestHighLevelClientExtTests.java

示例15: declareInnerHitsParseFields

import org.elasticsearch.common.ParseField; //导入依赖的package包/类
public static void declareInnerHitsParseFields(ObjectParser<Map<String, Object>, Void> parser) {
    declareMetaDataFields(parser);
    parser.declareString((map, value) -> map.put(Fields._TYPE, value), new ParseField(Fields._TYPE));
    parser.declareString((map, value) -> map.put(Fields._INDEX, value), new ParseField(Fields._INDEX));
    parser.declareString((map, value) -> map.put(Fields._ID, value), new ParseField(Fields._ID));
    parser.declareString((map, value) -> map.put(Fields._NODE, value), new ParseField(Fields._NODE));
    parser.declareField((map, value) -> map.put(Fields._SCORE, value), SearchHit::parseScore, new ParseField(Fields._SCORE),
            ValueType.FLOAT_OR_NULL);
    parser.declareLong((map, value) -> map.put(Fields._VERSION, value), new ParseField(Fields._VERSION));
    parser.declareField((map, value) -> map.put(Fields._SHARD, value), (p, c) -> ShardId.fromString(p.text()),
            new ParseField(Fields._SHARD), ValueType.STRING);
    parser.declareObject((map, value) -> map.put(SourceFieldMapper.NAME, value), (p, c) -> parseSourceBytes(p),
            new ParseField(SourceFieldMapper.NAME));
    parser.declareObject((map, value) -> map.put(Fields.HIGHLIGHT, value), (p, c) -> parseHighlightFields(p),
            new ParseField(Fields.HIGHLIGHT));
    parser.declareObject((map, value) -> {
        Map<String, SearchHitField> fieldMap = get(Fields.FIELDS, map, new HashMap<String, SearchHitField>());
        fieldMap.putAll(value);
        map.put(Fields.FIELDS, fieldMap);
    }, (p, c) -> parseFields(p), new ParseField(Fields.FIELDS));
    parser.declareObject((map, value) -> map.put(Fields._EXPLANATION, value), (p, c) -> parseExplanation(p),
            new ParseField(Fields._EXPLANATION));
    parser.declareObject((map, value) -> map.put(NestedIdentity._NESTED, value), NestedIdentity::fromXContent,
            new ParseField(NestedIdentity._NESTED));
    parser.declareObject((map, value) -> map.put(Fields.INNER_HITS, value), (p,c) -> parseInnerHits(p),
            new ParseField(Fields.INNER_HITS));
    parser.declareStringArray((map, list) -> map.put(Fields.MATCHED_QUERIES, list), new ParseField(Fields.MATCHED_QUERIES));
    parser.declareField((map, list) -> map.put(Fields.SORT, list), SearchSortValues::fromXContent, new ParseField(Fields.SORT),
            ValueType.OBJECT_ARRAY);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:31,代码来源:SearchHit.java


注:本文中的org.elasticsearch.common.ParseField类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。