Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Mapeo de datos

6/16
Recursos

Aportes 6

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Formato json para insertar platos:

{
    "nombre": "",
    "descripcion": "",
    "estado": "",
    "pedidosUltimaHora": ,
    "ultimaModificacion": {
        "usuario": "",
        "fecha": ""
    }
}

Json file de la clase:

{
    "mappings": {
        "properties": {
            "nombre": {"type": "text"},
            "descripción": {"type": "text"},
            "pedidosUltimaHora": {"type": "integer"},
            "ultimaModificacion": {
                "properties": {
                    "usuario": {"type": "text"},
                    "fecha": {"type": "date"}
                }
            }
        }   
    }
}

RENOMBRAR EL NOMBRE DE UN CAMPO.

ElasticSearch no permite cambiar el nombre de un campo ya creado. En caso de querer hacer este cambio debemos reindexar. Supongamos que tienes este documento:

{
  "nombre": "xxxx",
  "apelido": "yyyy"
}

Y quieres arreglar el campo apelido, el cual está mal escrito y ya tienes muchos documentos indexados. Entonces haces lo siguiente:

POST _reindex
{
  "source": {
    "index": "indice_actual"
  },
  "dest": {
    "index": "nuevo_indice"
  },
  "script": {
    "source": "ctx._source.apellido = ctx._source.remove(\"apelido\")"
  }
}

Y listo, ahora nuevo_indice contiene el campo sin la falta ortográfica y con los datos que tenías guardados en indice_actual.

DIFERENCIA ENTRE TEXT Y KEYWORD 🤔
.
Los campos de texto (text fields) se dividen en sus términos individuales en la indexación para permitir una coincidencia parcial, mientras que los campos de palabras clave (keyword fields) se indexan tal cual.
.
Por ejemplo, si usamos el campo text para almacenar “Hola mundo” el inicializador de Elasticsearch lo almacenara como [Hola, mundo].
.
Por otra parte si utilizamos el tipo keyword, se almacenara la frase entera sin ser separada.
.
El tipo de dato text es perfecto para descripciones de productos y keyword es para buscar valores exactos como nombres de provincias, estados, universidades, etc.

  • Para obtener un optimo rendimiento en Elastic Search, se recomienda crear un mapeo explicito.
  • El texto puede ser guardado por dos tipo de datos text y keyword en el 1° las búsquedas se realizan con el operador (match), que busca valores de texto completo, y en el 2° con el operador (term), que busca valores exactos.
  • Texto: text, keyword
  • Fecha: date
  • Númerico: integer, long, float, double
  • Boleano: boolean
  • Objetos: object, nested
  • Geográficos, geo_point, geo_shape

Que mal curso, estoy haciéndolo pero hasta ahorita no veo cual es el objetivo final, sin añadir que sigo sin entender Elasticsearch, esto no es para nada lo que esperaba del curso