Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 9077|Răspunde: 0

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

[Copiază linkul]
Postat pe 09.01.2019 10:29:11 | | | |
Motivul erorii

{
"eroare": {
"root_cause": [
{
"tip": "mapper_parsing_exception",
"motiv": "Niciun handler pentru tipul [string] declarat pe câmpul [upload_status]"
}
],
"tip": "mapper_parsing_exception",
"motiv": "Niciun handler pentru tipul [string] declarat pe câmpul [upload_status]"
},
"status": 400
}


Folosesc Elasticsearch versiunea 6.2.2 și când creez câmpuri conform documentației școlii, folosesc {"type":"string","index":"not_analyzed"}.

Analiza cauzei

După ce am verificat ortografia, am decis să verific noua versiune a funcționalităților Elasticsearch, pentru că am călcat și eu în dificultate cu metoda de instalare a pluginului principal, din cauza problemei cu versiunea.
Așa cum era de așteptat, Elasticsearch a introdus textul și cuvintele-cheie din 5.X, unde cuvântul cheie este aplicat câmpurilor care nu sunt segmentate și poate corespunde exact doar la căutare, moment în care șirul este încă păstrat.

A ajuns6.X elimină complet șirulTermina.

În afară de astaValoarea "indexului" poate fi doar o variabilă booleană

Soluție alternativă

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

Așadar, modificarea json este următoarea:

Dar există erori noi care sunt următoarele:

{
"eroare": {
"root_cause": [
{
"tip": "illegal_argument_exception",
"motiv": "Se respinge actualizarea mapării către [restraunt] deoarece maparea finală ar avea mai mult de un tip: [record, info]"
}
],
"tip": "illegal_argument_exception",
"motiv": "Se respinge actualizarea mapării către [restraunt] deoarece maparea finală ar avea mai mult de un tip: [record, info]"
},
"status": 400
}
Acest lucru se datorează următoarelor:O schimbare majoră în Elasticsearch 6.x, unde Mapping permite un singur tip。 Indicii creați în 5.x cu multiple tipuri de mapare vor continua să ruleze în Elasticsearch 6.x ca înainte. Tipurile de mapare vor fi eliminate complet în Elasticsearch 7.0.0.

După lansarea Elasticsearch 7.x, parametrul din typeURL devine opțional. De exemplu, indexarea documentelor nu mai necesită un tip de document

Resurse:

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







Precedent:Criptarea MD5
Următor:Cum face codul C# ca calculatorul să se oprească, să repornească, să se deconecteze, să se blocheze, să se oprească...
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com