Java 类org.elasticsearch.common.xcontent.ObjectParser 实例源码

项目:elasticsearch_my    文件:SearchHit.java   
/**
 * 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);
        }
    }
}
项目:elasticsearch_my    文件:AdjacencyMatrixAggregationBuilder.java   
public static Aggregator.Parser getParser() {
    ObjectParser<AdjacencyMatrixAggregationBuilder, QueryParseContext> parser = new ObjectParser<>(
            AdjacencyMatrixAggregationBuilder.NAME);
    parser.declareString(AdjacencyMatrixAggregationBuilder::separator, SEPARATOR_FIELD);
    parser.declareNamedObjects(AdjacencyMatrixAggregationBuilder::setFiltersAsList, KeyedFilter.PARSER, FILTERS_FIELD);
    return new Aggregator.Parser() {
        @Override
        public AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException {
            AdjacencyMatrixAggregationBuilder result = parser.parse(context.parser(),
                    new AdjacencyMatrixAggregationBuilder(aggregationName), context);
            result.checkConsistency();
            return result;
        }
    };
}
项目:elasticsearch_my    文件:SearchHit.java   
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);
}
项目:elasticsearch_my    文件:AbstractAllocateAllocationCommand.java   
protected static <T extends Builder<?>> ObjectParser<T, Void> createAllocateParser(String command) {
    ObjectParser<T, Void> parser = new ObjectParser<>(command);
    parser.declareString(Builder::setIndex, new ParseField(INDEX_FIELD));
    parser.declareInt(Builder::setShard, new ParseField(SHARD_FIELD));
    parser.declareString(Builder::setNode, new ParseField(NODE_FIELD));
    return parser;
}
项目:elasticsearch_my    文件:ValuesSourceParserHelper.java   
public static void declareAnyFields(
        ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource, ?>, QueryParseContext> objectParser,
        boolean scriptable, boolean formattable) {
    declareFields(objectParser, scriptable, formattable, false, null);
}
项目:elasticsearch_my    文件:ValuesSourceParserHelper.java   
public static void declareNumericFields(
        ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.Numeric, ?>, QueryParseContext> objectParser,
        boolean scriptable, boolean formattable, boolean timezoneAware) {
    declareFields(objectParser, scriptable, formattable, timezoneAware, ValueType.NUMERIC);
}
项目:elasticsearch_my    文件:ValuesSourceParserHelper.java   
public static void declareBytesFields(
        ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.Bytes, ?>, QueryParseContext> objectParser,
        boolean scriptable, boolean formattable) {
    declareFields(objectParser, scriptable, formattable, false, ValueType.STRING);
}
项目:elasticsearch_my    文件:ValuesSourceParserHelper.java   
public static void declareGeoFields(
        ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.GeoPoint, ?>, QueryParseContext> objectParser,
        boolean scriptable, boolean formattable) {
    declareFields(objectParser, scriptable, formattable, false, ValueType.GEOPOINT);
}
项目:elasticsearch_my    文件:Suggest.java   
protected static void declareCommonFields(ObjectParser<? extends Entry<? extends Option>, Void> parser) {
    parser.declareString((entry, text) -> entry.text = new Text(text), new ParseField(TEXT));
    parser.declareInt((entry, offset) -> entry.offset = offset, new ParseField(OFFSET));
    parser.declareInt((entry, length) -> entry.length = length, new ParseField(LENGTH));
}
项目:elasticsearch_my    文件:BasePrimaryAllocationCommand.java   
protected static <T extends Builder<?>> ObjectParser<T, Void> createAllocatePrimaryParser(String command) {
    ObjectParser<T, Void> parser = AbstractAllocateAllocationCommand.createAllocateParser(command);
    parser.declareBoolean(Builder::setAcceptDataLoss, new ParseField(ACCEPT_DATA_LOSS_FIELD));
    return parser;
}