Vector tiles buffer is used to include data that is just outside of the tile. This data is used to prevent border effects when rendering the geometries. It is currently [hardcoded to 5 pixels](https://github.com/elastic/elasticsearch/blob/de2781f98696c1e6cfad2b5bf46fe752a5e3edbb/x-pack/plugin/vector-tile/src/main/java/org/elasticsearch/xpack/vectortile/feature/FeatureFactory.java#L63) but it should probably need to be user configurable by adding a new property on the vector tiles API which can change the value.




x-pack/plugin/vector-tile/src/test/java/org/elasticsearch/xpack/vectortile/rest/VectorTileRequestTests.java
}
    public void testFieldExactBounds() throws IOException {
        final boolean exactBounds = randomBoolean();
        assertRestRequest(
            (builder) -> { builder.field(VectorTileRequest.EXACT_BOUNDS_FIELD.getPreferredName(), exactBounds); },
            (vectorTileRequest) -> { assertThat(vectorTileRequest.getExactBounds(), Matchers.equalTo(exactBounds)); }
        );
    }
    public void testFieldQuery() throws IOException {
        final QueryBuilder queryBuilder = new TermQueryBuilder(randomAlphaOfLength(10), randomAlphaOfLength(10));
        assertRestRequest((builder) -> {
            builder.field(SearchSourceBuilder.QUERY_FIELD.getPreferredName());
            queryBuilder.toXContent(builder, ToXContent.EMPTY_PARAMS);
        }, (vectorTileRequest) -> { assertThat(vectorTileRequest.getQueryBuilder(), Matchers.equalTo(queryBuilder)); });
    }
    public void testFieldAgg() throws IOException {
        final AggregationBuilder aggregationBuilder = new AvgAggregationBuilder("xxx").field("xxxx");
        assertRestRequest((builder) -> {
            builder.startObject(SearchSourceBuilder.AGGS_FIELD.getPreferredName());
            aggregationBuilder.toXContent(builder, ToXContent.EMPTY_PARAMS);
            builder.endObject();
        }, (vectorTileRequest) -> {
            assertThat(vectorTileRequest.getAggBuilder(), Matchers.iterableWithSize(1));
            assertThat(vectorTileRequest.getAggBuilder().contains(aggregationBuilder), Matchers.equalTo(true));
        });
    }
    public void testFieldRuntimeMappings() throws IOException {
        final String fieldName = randomAlphaOfLength(10);
        assertRestRequest((builder) -> {
            builder.startObject(SearchSourceBuilder.RUNTIME_MAPPINGS_FIELD.getPreferredName())