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


Java Token.START_ARRAY属性代码示例

本文整理汇总了Java中org.elasticsearch.common.xcontent.XContentParser.Token.START_ARRAY属性的典型用法代码示例。如果您正苦于以下问题:Java Token.START_ARRAY属性的具体用法?Java Token.START_ARRAY怎么用?Java Token.START_ARRAY使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在org.elasticsearch.common.xcontent.XContentParser.Token的用法示例。


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

示例1: parseQuery

@Override
public FieldQuery parseQuery(String name, XContentParser parser) throws IOException, ElasticsearchParseException {
    Iterable<? extends CharSequence> values;
    Token token = parser.currentToken();
    if (token == Token.START_ARRAY) {
        ArrayList<String> list = new ArrayList<>();
        while ((token = parser.nextToken()) != Token.END_ARRAY) {
            list.add(parser.text());
        }
        values = list;
    } else if (token == Token.VALUE_NULL) {
        values = defaultValues;
    } else {
        values = Collections.singleton(parser.text());
    }

    return new FieldQuery(name, values);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:18,代码来源:CategoryContextMapping.java

示例2: testParseGeoPoint

public void testParseGeoPoint() throws IOException {
    for (int i = 0; i < 100; i++) {
        double lat = randomDouble() * 180 - 90 + randomIntBetween(-1000, 1000) * 180;
        double lon = randomDouble() * 360 - 180 + randomIntBetween(-1000, 1000) * 360;
        XContentBuilder json = jsonBuilder().startObject().field("lat", lat).field("lon", lon).endObject();
        XContentParser parser = createParser(json);
        parser.nextToken();
        GeoPoint point = GeoUtils.parseGeoPoint(parser);
        assertThat(point, equalTo(new GeoPoint(lat, lon)));
        json = jsonBuilder().startObject().field("lat", String.valueOf(lat)).field("lon", String.valueOf(lon)).endObject();
        parser = createParser(json);
        parser.nextToken();
        point = GeoUtils.parseGeoPoint(parser);
        assertThat(point, equalTo(new GeoPoint(lat, lon)));
        json = jsonBuilder().startObject().startArray("foo").value(lon).value(lat).endArray().endObject();
        parser = createParser(json);
        while (parser.currentToken() != Token.START_ARRAY) {
            parser.nextToken();
        }
        point = GeoUtils.parseGeoPoint(parser);
        assertThat(point, equalTo(new GeoPoint(lat, lon)));
        json = jsonBuilder().startObject().field("foo", lat + "," + lon).endObject();
        parser = createParser(json);
        while (parser.currentToken() != Token.VALUE_STRING) {
            parser.nextToken();
        }
        point = GeoUtils.parseGeoPoint(parser);
        assertThat(point, equalTo(new GeoPoint(lat, lon)));
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:30,代码来源:GeoUtilsTests.java

示例3: parseQueryContext

/**
 * Parses query contexts for this mapper
 */
public final List<InternalQueryContext> parseQueryContext(QueryParseContext context) throws IOException, ElasticsearchParseException {
    List<T> queryContexts = new ArrayList<>();
    XContentParser parser = context.parser();
    Token token = parser.nextToken();
    if (token == Token.START_OBJECT || token == Token.VALUE_STRING) {
        queryContexts.add(fromXContent(context));
    } else if (token == Token.START_ARRAY) {
        while (parser.nextToken() != Token.END_ARRAY) {
            queryContexts.add(fromXContent(context));
        }
    }
    return toInternalQueryContexts(queryContexts);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:16,代码来源:ContextMapping.java

示例4: testParseGeoPointArrayTooManyValues

public void testParseGeoPointArrayTooManyValues() throws IOException {
    double lat = 0.0;
    double lon = 0.0;
    double elev = 0.0;
    XContentBuilder json = jsonBuilder().startObject().startArray("foo").value(lon).value(lat).value(elev).endArray().endObject();
    XContentParser parser = createParser(json);
    while (parser.currentToken() != Token.START_ARRAY) {
        parser.nextToken();
    }
    Exception e = expectThrows(ElasticsearchParseException.class, () -> GeoUtils.parseGeoPoint(parser));
    assertThat(e.getMessage(), is("only two values allowed"));
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:12,代码来源:GeoUtilsTests.java

示例5: testParseGeoPointArrayWrongType

public void testParseGeoPointArrayWrongType() throws IOException {
    double lat = 0.0;
    boolean lon = false;
    XContentBuilder json = jsonBuilder().startObject().startArray("foo").value(lon).value(lat).endArray().endObject();
    XContentParser parser = createParser(json);
    while (parser.currentToken() != Token.START_ARRAY) {
        parser.nextToken();
    }
    Exception e = expectThrows(ElasticsearchParseException.class, () -> GeoUtils.parseGeoPoint(parser));
    assertThat(e.getMessage(), is("numeric value expected"));
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:11,代码来源:GeoUtilsTests.java

示例6: parseSinglePointOrList

protected static Collection<String> parseSinglePointOrList(XContentParser parser) throws IOException {
    Token token = parser.currentToken();
    if(token == Token.START_ARRAY) {
        token = parser.nextToken();
        // Test if value is a single point in <code>[lon, lat]</code> format
        if(token == Token.VALUE_NUMBER) {
            double lon = parser.doubleValue();
            if(parser.nextToken() == Token.VALUE_NUMBER) {
                double lat = parser.doubleValue();
                if(parser.nextToken() == Token.END_ARRAY) {
                    return Collections.singleton(GeoHashUtils.stringEncode(lon, lat));
                } else {
                    throw new ElasticsearchParseException("only two values expected");
                }
            } else {
                throw new ElasticsearchParseException("latitue must be a numeric value");
            }
        } else {
            // otherwise it's a list of locations
            ArrayList<String> result = new ArrayList<>();
            while (token != Token.END_ARRAY) {
                result.add(GeoUtils.parseGeoPoint(parser).geohash());
                token = parser.nextToken(); //infinite loop without this line
            }
            return result;
        }
    } else {
        // or a single location
        return Collections.singleton(GeoUtils.parseGeoPoint(parser).geohash());
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:31,代码来源:GeolocationContextMapping.java


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