Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 9077|Απάντηση: 0

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

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 9/1/2019 10:29:11 π.μ. | | | |
Αιτία σφάλματος

{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "Δεν υπάρχει δείκτης χειρισμού για τον τύπο [string] που δηλώνεται στο πεδίο [upload_status]"
}
],
"type": "mapper_parsing_exception",
"reason": "Δεν υπάρχει δείκτης χειρισμού για τον τύπο [string] που δηλώνεται στο πεδίο [upload_status]"
},
"κατάσταση": 400
}


Χρησιμοποιώ την έκδοση 6.2.2 του Elasticsearch και όταν δημιουργώ πεδία σύμφωνα με την τεκμηρίωση του σχολείου, χρησιμοποιώ {"type":"string","index":"not_analyzed"}.

Ανάλυση αιτίας

Αφού έλεγξα την ορθογραφία, αποφάσισα να ελέγξω τη νέα έκδοση των δυνατοτήτων του Elasticsearch, επειδή είχα επίσης πατήσει στο λάκκο της μεθόδου εγκατάστασης του πρόσθετου κεφαλής στο παρελθόν, λόγω του προβλήματος έκδοσης.
Σίγουρα, το Elasticsearch εισήγαγε κείμενο και λέξη-κλειδί από το 5.X, όπου η λέξη-κλειδί εφαρμόζεται σε πεδία μη τμηματοποίησης και μπορεί να ταιριάξει ακριβώς μόνο κατά την αναζήτηση, οπότε η συμβολοσειρά εξακολουθεί να διατηρείται.

έφτασεΤο 6.X αφαιρεί εντελώς τη συμβολοσειράΤελειώνω.

Εκτός από αυτόΗ τιμή του "index" μπορεί να είναι μόνο μια δυαδική μεταβλητή

Λύση

{"type":"κείμενο","index":false}

Έτσι, η τροποποίηση json έχει ως εξής:

Υπάρχουν όμως νέα σφάλματα που είναι τα εξής:

{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Απόρριψη ενημέρωσης αντιστοίχισης σε [restraunt] καθώς η τελική αντιστοίχιση θα είχε περισσότερους από 1 τύπους: [εγγραφή, πληροφορίες]"
}
],
"type": "illegal_argument_exception",
"reason": "Απόρριψη ενημέρωσης αντιστοίχισης σε [restraunt] καθώς η τελική αντιστοίχιση θα είχε περισσότερους από 1 τύπους: [εγγραφή, πληροφορίες]"
},
"κατάσταση": 400
}
Αυτό οφείλεται:Μια σημαντική αλλαγή στο Elasticsearch 6.x όπου η αντιστοίχιση επιτρέπει μόνο έναν τύπο。 Τα ευρετήρια που δημιουργήθηκαν στην έκδοση 5.x με πολλούς τύπους αντιστοίχισης θα συνεχίσουν να εκτελούνται στο Elasticsearch 6.x όπως πριν. Οι τύποι αντιστοίχισης θα καταργηθούν πλήρως στο Elasticsearch 7.0.0.

Μετά την κυκλοφορία του Elasticsearch 7.x, η παράμετρος στο typeURL είναι προαιρετική. Για παράδειγμα, η δημιουργία ευρετηρίου εγγράφων δεν απαιτεί πλέον τύπο εγγράφου

Πόροι:

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







Προηγούμενος:Κρυπτογράφηση MD5
Επόμενος:Πώς ο κώδικας C# κάνει τον υπολογιστή σας να τερματίζει, να επανεκκινεί, να αποσυνδέεται, να κλειδώνει, να τερματίζει...
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com