web-dev-qa-db-fra.com

Elasticsearch: la définition du mappage racine comporte un index de paramètres non pris en charge: not_analyzed

Bonjour à tous, j'essaie de créer un schéma de test.

PUT /test
{
    "mappings": {
        "field1": {
            "type": "integer"
        },
        "field2": {  
            "type": "integer"
        },
        "field3": {
            "type": "string",
            "index": "not_analyzed"
        },
        "field4": {
            "type": "string",
            "analyzer": "autocomplete",
            "search_analyzer": "standard"
        }
    },
    "settings": {
        bla
        bla
        bla
    }
}

Je reçois l'erreur suivante

{
    "error": {
        "root_cause": [{
            "type": "mapper_parsing_exception",
            "reason": "Root mapping definition has unsupported parameters: [index : not_analyzed] [type : string]"
        }],
        "type": "mapper_parsing_exception",
        "reason": "Failed to parse mapping [featured]: Root mapping definition has unsupported parameters:  [index : not_analyzed] [type : string]",
        "caused_by": {
            "type": "mapper_parsing_exception",
            "reason": "Root mapping definition has unsupported parameters:  [index : not_analyzed] [type : string]"
        }
    },
    "status": 400
}

S'il vous plaît aidez-moi à résoudre cette erreur

38
Ramesh

Vous êtes presque là, il ne vous manque que quelques choses:

PUT /test
{
  "mappings": {
    "type_name": {                <--- add the type name
      "properties": {             <--- enclose all field definitions in "properties"
        "field1": {
          "type": "integer"
        },
        "field2": {
          "type": "integer"
        },
        "field3": {
          "type": "string",
          "index": "not_analyzed"
        },
        "field4,": {
          "type": "string",
          "analyzer": "autocomplete",
          "search_analyzer": "standard"
        }
      }
    }
  },
  "settings": {
     ...
  }
}

[~ # ~] met à jour [~ # ~]

Si votre index existe déjà, vous pouvez également modifier vos mappages comme ceci:

PUT test/_mapping/type_name
{
    "properties": {             <--- enclose all field definitions in "properties"
        "field1": {
          "type": "integer"
        },
        "field2": {
          "type": "integer"
        },
        "field3": {
          "type": "string",
          "index": "not_analyzed"
        },
        "field4,": {
          "type": "string",
          "analyzer": "autocomplete",
          "search_analyzer": "standard"
        }
    }
}

[~ # ~] met à jour [~ # ~] :

À partir de l'ES 7, les types de mappage ont été supprimés. Vous pouvez lire plus de détails ici

60
Val

J'espère que la réponse ci-dessus fonctionne pour la recherche élastique <7.0, mais nous ne pouvons pas spécifier de type de document dans 7.0 et ce dernier n'est plus pris en charge. Et dans ce cas, si nous spécifions le type de document, nous obtenons une erreur similaire.

Si vous utilisez Elastic Search 7.0 et la dernière version de Nest C # (6.6). Certaines modifications avec ES 7.0 ont été à l'origine de ce problème. En effet, nous ne pouvons pas spécifier de type de document et dans la version 6.6 de NEST, ils utilisent doctype. Donc, pour résoudre le problème de la publication de NEST 7.0, nous devons télécharger leur package bêta.

S'il vous plaît passez par ce lien pour le réparer

https://xyzcoder.github.io/elasticsearch/nest/2019/04/12/es-70-and-nest-mapping-error.html

EDIT: NEST 7.0 est maintenant publié. NEST 7.0 fonctionne avec Elastic 7.0. Voir le notes de version ici pour plus de détails.

Vérifiez votre version Elastic.

J'ai eu ce problème parce que je cherchais une version incorrecte de la documentation.

enter image description here

2
qarly_blue