wake-up-neo.com

Elasticsearch: Root-Mapping-Definition hat nicht unterstützte Parameter index: not_analyzed

Hallo zusammen, ich versuche einen Schematest zu erstellen.

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
    }
}

Ich erhalte den folgenden Fehler

{
    "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
}

Bitte helfen Sie mir, diesen Fehler zu beheben

38
Ramesh

Du bist fast da, dir fehlen nur ein paar Dinge:

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": {
     ...
  }
}

[~ # ~] Update [~ # ~]

Wenn Ihr Index bereits vorhanden ist, können Sie Ihre Zuordnungen auch folgendermaßen ändern:

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"
        }
    }
}

[~ # ~] Update [~ # ~] :

Ab ES 7 wurden Zuordnungstypen entfernt. Sie können mehr Details lesen hier

60
Val

Ich hoffe, die obige Antwort funktioniert für die elastische Suche <7.0, aber in 7.0 können wir den Dokumenttyp nicht angeben und er wird nicht mehr unterstützt. In diesem Fall erhalten wir einen ähnlichen Fehler, wenn wir den Dokumenttyp angeben.

Wenn Sie Elastic Search 7.0 und Nest C # als neueste Version (6.6) verwenden. Es gibt einige wichtige Änderungen in ES 7.0, die dieses Problem verursachen. Dies liegt daran, dass wir den Dokumenttyp nicht angeben können und in der Version 6.6 von NEST doctype verwenden. Um dieses Problem zu lösen, müssen wir das Betapaket von NEST 7.0 herunterladen

Bitte klicken Sie auf diesen Link, um das Problem zu beheben

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

EDIT: NEST 7.0 ist jetzt verfügbar. NEST 7.0 funktioniert mit Elastic 7.0. Einzelheiten finden Sie in den Versionshinweisen hier .

Überprüfen Sie Ihre Elastic-Version.

Ich hatte dieses Problem, weil ich die falsche Dokumentation der Version ansah.

enter image description here

2
qarly_blue