Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9077|Antwort: 0

Elasticsearch:No handler for type [string] declared on field[XX]的解决办法

[Link kopieren]
Veröffentlicht am 09.01.2019 10:29:11 | | | |
Fehlerbegründung

{
"error": {
"root_cause": [
{
"typ": "mapper_parsing_exception",
"reason": "Kein Handler für den Typ [String] deklariert auf dem Feld [upload_status]"
}
],
"typ": "mapper_parsing_exception",
"reason": "Kein Handler für den Typ [String] deklariert auf dem Feld [upload_status]"
},
"Status": 400
}


Ich benutze Elasticsearch Version 6.2.2 und wenn ich Felder gemäß der Schuldokumentation erstelle, verwende ich {"type":"string","index":"not_analyzed"}.

Ursachenanalyse

Nachdem ich die Rechtschreibung überprüft hatte, entschied ich mich, die neue Version der Elasticsearch-Funktionen zu überprüfen, weil ich zuvor auch wegen des Versionsproblems auf die Installationsmethode des Head-Plugins getreten war.
Tatsächlich hat Elasticsearch Text und Schlüsselwort aus 5.X eingeführt, wo das Schlüsselwort auf nicht-segmentierte Felder angewendet wird und nur beim Suchen exakt übereinstimmt, wobei der String weiterhin gespeichert bleibt.

angekommen6.X entfernt die Zeichenkette vollständigBeenden.

Abgesehen davonDer Wert von "Index" kann nur eine boolesche Variable sein

Workaround

{"type":"text","index":false}

Die JSON-Modifikation ist also wie folgt:

Aber es gibt neue Fehler, die wie folgt sind:

{
"error": {
"root_cause": [
{
"Typ": "illegal_argument_exception",
"reason": "Ablehnung eines Mapping-Updates an [Restaurant], da die endgültige Zuordnung mehr als einen Typ hätte: [Datensatz, Info]"
}
],
"Typ": "illegal_argument_exception",
"reason": "Ablehnung eines Mapping-Updates an [Restaurant], da die endgültige Zuordnung mehr als einen Typ hätte: [Datensatz, Info]"
},
"Status": 400
}
Dies ist auf folgende Folgen zurückzuführen:Eine große Änderung in Elasticsearch 6.x, bei der Mapping nur einen Typ erlaubt。 Indizes, die in 5.x mit mehreren Mapping-Typen erstellt wurden, laufen weiterhin wie zuvor in Elasticsearch 6.x. Mapping-Typen werden in Elasticsearch 7.0.0 vollständig entfernt.

Nach der Veröffentlichung von Elasticsearch 7.x ist der Parameter in typeURL optional. Zum Beispiel erfordert die Indexierung von Dokumenten keinen Dokumenttyp mehr

Betriebsmittel:

https://github.com/sirensolutions/sentinl/issues/257
https://www.elastic.co/guide/en/ ... moval-of-types.html







Vorhergehend:MD5-Verschlüsselung
Nächster:Wie bewirkt C#-Code, dass Ihr Computer heruntergefahren, neu gestartet, ausloggt, sperrt, herunterfährt...
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com