Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 9077|Odpowiedź: 0

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

[Skopiuj link]
Opublikowano 09.01.2019 10:29:11 | | | |
Przyczyna błędu

{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "Brak obsługi typu [string] zadeklarowanego na polu [upload_status]"
}
],
"type": "mapper_parsing_exception",
"reason": "Brak obsługi typu [string] zadeklarowanego na polu [upload_status]"
},
"Status": 400
}


Używam Elasticsearch w wersji 6.2.2 i przy tworzeniu pól zgodnie z dokumentacją szkolną używam {"type":"string","index":"not_analyzed"}.

Analiza przyczyn

Po sprawdzeniu pisowni postanowiłem sprawdzić nową wersję funkcji Elasticsearch, ponieważ wcześniej naruszyłem problem z instalacją wtyczki głowy z powodu problemu z wersją.
I rzeczywiście, Elasticsearch wprowadził tekst i słowo kluczowe z wersji 5.X, gdzie słowo kluczowe jest stosowane do pól niesegmentacyjnych i może dokładnie dopasować tylko podczas wyszukiwania, wtedy ciąg jest nadal zachowywany.

przyjechał6.X całkowicie usuwa ciąg znakówSkończyć.

Poza tymWartość "indeksu" może być tylko zmienną boole'a

Obejście

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

Modyfikacja json wygląda następująco:

Ale pojawiły się nowe błędy, które wyglądają następująco:

{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"powód": "Odrzucanie aktualizacji mapowania do [restraunt], ponieważ ostateczne odwzorowanie miałoby więcej niż jeden typ: [record, info]"
}
],
"type": "illegal_argument_exception",
"powód": "Odrzucanie aktualizacji mapowania do [restraunt], ponieważ ostateczne odwzorowanie miałoby więcej niż jeden typ: [record, info]"
},
"Status": 400
}
Jest to spowodowane po:To poważna zmiana w Elasticsearch 6.x, gdzie mapowanie pozwala tylko na jeden typ。 Indeksy utworzone w 5.x z wieloma typami mapowania będą nadal działać w Elasticsearch 6.x jak wcześniej. Typy mapowania zostaną całkowicie usunięte w Elasticsearch 7.0.0.

Po wydaniu Elasticsearch 7.x parametr w typeURL jest opcjonalny. Na przykład indeksowanie dokumentów nie wymaga już typu dokumentu

Zasoby:

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







Poprzedni:Szyfrowanie MD5
Następny:Jak kod w C# powoduje wyłączenie komputera, jego restart, wylogowanie, zablokowanie, wyłączenie...
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com