package com.github.obourgain.elasticsearch.http.response.entity; import java.io.IOException; import java.util.List; import java.util.Map; import org.elasticsearch.common.xcontent.XContentParser; import lombok.Getter; @Getter public class TermVector { private String field; private FieldStatistics fieldStatistics; private List<Term> terms; public TermVector parse(XContentParser parser) { try { assert parser.currentToken() == XContentParser.Token.START_OBJECT : "expected a START_OBJECT token but was " + parser.currentToken(); parser.nextToken(); // the term vector's field assert parser.currentToken() == XContentParser.Token.FIELD_NAME : "expected a FIELD_NAME token but was " + parser.currentToken(); field = parser.text(); XContentParser.Token token; String currentFieldName = null; while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); } else if (token == XContentParser.Token.START_OBJECT) { if ("field_statistics".equals(currentFieldName)) { parser.nextToken(); Map<String, Object> map = parser.map(); fieldStatistics = FieldStatistics.fromMap(map); } else if ("terms".equals(currentFieldName)) { terms = Term.parseTerms(parser); } } } return this; } catch (IOException e) { throw new RuntimeException(e); } } }