### Description

Dynamic mappings can greatly help the getting started experience but they currently don't apply to all types, one example is `dense_vector`.

It's been suggested to automatically map float arrays as dense vectors when there are more than 100 values, or a heuristic along these lines.
server/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java
ParsedDocument doc = defaultMapper.parse(source(b -> {
            b.field("myfield", "value1");
            b.array("something.myfield", "value2", "value3");
        }));
        assertThat(doc.rootDoc().getFields("myfield"), hasSize(1));
        for (IndexableField field : doc.rootDoc().getFields("myfield")) {
            assertThat(field.binaryValue(), equalTo(new BytesRef("value1")));
        }
        
        assertThat(doc.rootDoc().getFields("something.myfield"), hasSize(0));
        assertNull(doc.dynamicMappingsUpdate());
    }
    public void testArraysDynamicFalse() throws IOException {
        DocumentMapper defaultMapper = createDocumentMapper(
            dynamicMapping("false", b -> b.startObject("myarray").field("type", "keyword").endObject())
        );
        ParsedDocument doc = defaultMapper.parse(source(b -> {
            b.array("unmapped", "unknown1", "unknown2");
            b.array("myarray", "array1", "array2");
        }));
        assertThat(doc.rootDoc().getFields("myarray"), hasSize(2));
        assertThat(doc.rootDoc().getFields("unmapped"), empty());
        assertNull(doc.dynamicMappingsUpdate());
    }
    public void testArraysOfObjectsRootDynamicFalse() throws IOException {
        DocumentMapper defaultMapper = createDocumentMapper(
            dynamicMapping(
                "false",
                b -> b.startObject("objects")
                    .startObject("properties")