Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 9077|Respuesta: 0

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

[Copiar enlace]
Publicado en 9/1/2019 10:29:11 | | | |
Razón del error

{
"error": {
"root_cause": [
{
"tipo": "mapper_parsing_exception",
"razón": "No hay manejador para el tipo [cadena] declarado en el campo [upload_status]"
}
],
"tipo": "mapper_parsing_exception",
"razón": "No hay manejador para el tipo [cadena] declarado en el campo [upload_status]"
},
"Estado": 400
}


Estoy usando Elasticsearch versión 6.2.2 y cuando creo campos según la documentación de la escuela, uso {"type":"string", "index":"not_analyzed"}.

Análisis de la causa

Después de revisar la ortografía, decidí revisar la nueva versión de las funciones de Elasticsearch, porque también había pisado antes el método de instalación del plugin principal debido al problema de versión.
Efectivamente, Elasticsearch introdujo texto y palabra clave desde 5.X, donde la palabra clave se aplica a campos no segmentados, y solo puede coincidir exactamente al buscar, momento en el que la cadena sigue conservada.

Llegó6.X elimina completamente la cadenaTerminar.

Aparte de esoEl valor de "índice" solo puede ser una variable booleana

Solución alternativa

{"tipo":"texto","índice":falso}

Así que, la modificación json es la siguiente:

Pero hay nuevos errores que son los siguientes:

{
"error": {
"root_cause": [
{
"tipo": "illegal_argument_exception",
"razón": "Rechazando la actualización de mapeo a [restraunt] ya que el mapeo final tendría más de 1 tipo: [registro, información]"
}
],
"tipo": "illegal_argument_exception",
"razón": "Rechazando la actualización de mapeo a [restraunt] ya que el mapeo final tendría más de 1 tipo: [registro, información]"
},
"Estado": 400
}
Esto se debe a:Un cambio importante en Elasticsearch 6.x, donde el mapeo solo permite un tipo。 Los índices creados en 5.x con múltiples tipos de mapeo continuarán ejecutándose en Elasticsearch 6.x como antes. Los tipos de mapeo se eliminarán completamente en Elasticsearch 7.0.0.

Tras la publicación de Elasticsearch 7.x, el parámetro en typeURL es opcional. Por ejemplo, indexar documentos ya no requiere un tipo de documento

Recursos:

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







Anterior:Cifrado MD5
Próximo:¿Cómo hace que el código C# haga que tu ordenador se apague, reinicie, cierre sesión, bloquee, apague...
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com