When a data frame analytics job is started it will automatically create its destination index if it doesn't already exist.

When this happens the mappings are copied from the source indices.  In addition two settings are copied from the source indices: `index.number_of_shards` and `index.number_of_replicas`.

However, for certain mappings in can be necessary that more settings are copied from the source indices.  For example, `index.analysis`, `index.similarity` and `index.mapping` might be needed to make the destination index search results look like those of the source indices.  In the case of custom analyzers defined in the index settings the destination index definition might not even be valid without the `index.analysis` setting that defines the custom analyzers.

So, we need to copy `index.analysis`, `index.similarity` and `index.mapping` from the source settings to destination settings.  Some thought is still required as this could be complex in the case of multiple source indices with different settings.  It might be possible to do a simple merge like we do for mappings.
server/src/main/java/org/elasticsearch/index/analysis/AnalysisRegistry.java
tokenFilters,
            this::getTokenFilterProvider
        );
    }
    /**
     * Returns a registered {@link CharFilterFactory} provider by {@link IndexSettings}
     *  or a registered {@link CharFilterFactory} provider by predefined name
     *  or <code>null</code> if the charFilter was not registered
     * @param charFilter global or defined charFilter name
     * @param indexSettings an index settings
     * @return {@link CharFilterFactory} provider or <code>null</code>
     */
    private AnalysisProvider<CharFilterFactory> getCharFilterProvider(String charFilter, IndexSettings indexSettings) {
        return getProvider(
            Component.CHAR_FILTER,
            charFilter,
            indexSettings,
            "index.analysis.char_filter",
            charFilters,
            this::getCharFilterProvider
        );
    }
    private static <T> AnalysisProvider<T> getProvider(
        Component componentType,
        String componentName,
        IndexSettings indexSettings,
        String componentSettings,
        Map<String, AnalysisProvider<T>> providers,
        Function<String, AnalysisProvider<T>> providerFunction
    ) {