Problemas al ordenar con un campo string

Buenos días:
En un índice sencillo que contiene los códigos y descripciones de localidades cuando hago una consulta e intento ordenar por el campo descripcion de tipo string los resultados no son los esperados.
Por ejemplo:
.../comunes/datos_generales/_search?pretty=true&size=10000&q=tipo:1&sort=descripcion:desc
me devuelve
"hits" : [
{
"_index" : "comunes",
"_type" : "datos_generales",
"_id" : "9409",
"_score" : null,
"_source" : {
"tipo" : "3",
"cod1" : "30",
"cod2" : "039",
"cod3" : "2",
"descripcion" : "LA ÑORICA"
},
"sort" : [
"ñorica"
]
},
{
"_index" : "comunes",
"_type" : "datos_generales",
"_id" : "9159",
"_score" : null,
"_source" : {
"tipo" : "3",
"cod1" : "30",
"cod2" : "030",
"cod3" : "24",
"descripcion" : "LA ÑORA"
},
"sort" : [
"ñora"
]
},
{
"_index" : "comunes",
"_type" : "datos_generales",
"_id" : "8834",
"_score" : null,
"_source" : {
"tipo" : "3",
"cod1" : "30",
"cod2" : "024",
"cod3" : "3105",
"descripcion" : "ZUÑIGA Y LA JUNCOSA"
},
"sort" : [
"zuñiga"
]
},

No está cogiendo toda la descripción de la localidad "LA ÑORICA" sino tan solo "ÑORICA" y aparece antes de la localidad que empieza por Z.

Me imagino que alguno os habreís encontrado un problema similar.
Espero respuesta, gracias.

Hola Rafael,

qué versión estás usando, y cual es el mapping del campo? Cuando quieres ordenar es recomendable usar campos de tipo keyword (en 5.X/6.X), o en las versiones anteriores, campos no analizados.

Hola Ismael:
Los campos son de tipo text y la versión es la 5.6. ¿Debo cambiar la definición de los campos?
{
"comunes" : {
"aliases" : { },
"mappings" : {
"datos_generales" : {
"properties" : {
"cod1" : {
"type" : "text",
"store" : true,
"fielddata" : true
},
"cod2" : {
"type" : "text",
"store" : true,
"fielddata" : true
},
"cod3" : {
"type" : "text",
"store" : true,
"fielddata" : true
},
"descripcion" : {
"type" : "text",
"store" : true,
"fielddata" : true
},
"tipo" : {
"type" : "integer",
"store" : true
}
}
}
},
"settings" : {
"index" : {
"creation_date" : "1524732056027",
"number_of_shards" : "5",
"number_of_replicas" : "1",
"uuid" : "78WD4cyHQASYIvQpYwNMng",
"version" : {
"created" : "5060299"
},
"provided_name" : "comunes"
}
}
}
}

Hola Ismael:
Ya he comprobado que con keyword funciona correctamente.
De momento soy novato en elastic.
Muchas gracias por la orientación.

Un saludo, Rafa Pina.

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.