Elasticsearch mappage par défaut

Ma compréhension actuelle-

  1. Elasticsearch crée la cartographie des indices de la première fois qu'il reçoit les ensembles de données JSON.
  2. Cette cartographie ne peut pas être changé, mais les ensembles de données peuvent être mappés.

Question-

Oublier de re-mapping. Est-il possible de tell ES à se comporter par défaut comme-

"Consider everything that is not a date to be of string type"?

Aussi, vais-je perdre beaucoup si je fais cela?

Mise à jour-

j'ai ajouté le fichier- config/mappings/_default/mapping.json avec le contenu suivant-

{
    "dynamic_templates": [
        {
            "template_1": {
                "match": "*",
                "match_mapping_type": "int",
                "mapping": {
                    "type": "string"
                }
            },
            "template_2": {
                "match": "*",
                "match_mapping_type": "long",
                "mapping": {
                    "type": "string"
                }
            }
        }
    ]
}

j'ai aussi essayé de placer les suivants config/default_mapping.json

{
    "_default_" : {
        "match": "*",
        "match_mapping_type": "int",
        "mapping": {
                "type": "string"
        }
    }
}

Mon "motif" est de se débarrasser des erreurs qui surgissent si int et long types de changement de string. Sera-ce la carte tous int et long valeurs string à travers tous les index sont créés dans l'avenir? Ai-je besoin de nid ce dynamic_templates clé au sein de _all?

Mise à jour II-

L'ajout de ce fichier de mappage causes elasticsearch pour la toux jusqu'à-

[2014-02-04 10:48:34,396][DEBUG][action.admin.indices.create] [Her] [logstash-2014.02.04] failed to create
org.elasticsearch.index.mapper.MapperParsingException: mapping [mapping.json]
    at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:312)
    at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:298)
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:135)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:701)
Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
    at org.elasticsearch.index.mapper.DocumentMapperParser.extractMapping(DocumentMapperParser.java:268)
    at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:155)
    at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:314)
    at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:193)
    at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:309)
    ... 5 more
2014-02-04 10:48:34 +0000 [warn]: temporarily failed to flush the buffer. next_retry=2014-02-04 10:48:33 +0000 error_class="Net::HTTPServerException" error="400 \"Bad Request\"" instance=17509700

OriginalL'auteur erbdex | 2014-02-04