(5) Tipos de datos de ElasticSearch y operaciones CRUD de documentos

1. Tipo de datos ES

Dirección del documento oficial: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html#_complex_datatypes

Tipos de datos básicos (tipos de datos básicos):

El tipo de datos principal es el tipo de datos más básico y de uso común de Elasticsearch, que se utiliza para almacenar la mayoría de los datos. Estos tipos de datos básicos incluyen:

  • Texto (texto): se utiliza para almacenar datos de texto largo para búsqueda y análisis de texto completo.
  • Palabra clave: utilizada para almacenar valores exactos, utilizada para filtrado, agregación y coincidencia exacta.
  • Numérico: se utiliza para almacenar datos numéricos, incluidos números enteros, números de coma flotante, etc.
  • Fecha (fecha): se utiliza para almacenar datos de fecha y hora. Dado que Json no tiene un tipo de fecha, es juzga si es un tipo de fecha al identificar si la cadena se ajusta al formato definido por formato.
  • Booleano (Boolean): se utiliza para almacenar valores booleanos.
  • Binario (binary): se utiliza para almacenar datos binarios.
  • Rango: El tipo Rango se utiliza para almacenar rangos numéricos, rangos de fechas, rangos de IP, etc. Le permite realizar consultas de rango y operaciones de agregación de rango en campos.

Tipos de datos complejos:

Los tipos de datos complejos permiten almacenar datos estructurados como objetos, matrices y campos anidados. Estos tipos de datos complejos incluyen:

  • Objeto: se utiliza para almacenar datos de objetos anidados o estructuras complejas.
  • Array (matriz): Una lista utilizada para almacenar múltiples valores. Solo use [ ] para definirlo. Todos los valores en la matriz deben ser del mismo tipo de datos. Las matrices de tipos de datos mixtos no son compatibles:

Utilice tipos de datos complejos para crear estructuras de datos más flexibles y complejas que admitan consultas anidadas y operaciones de agregación.

Tipos de datos especializados:

Los tipos de datos especializados son tipos de datos de propósito especial proporcionados por Elasticsearch para resolver necesidades de dominio específicas. Estos tipos de datos especializados incluyen:

  • GeoPoint (punto geográfico): se utiliza para almacenar puntos de coordenadas geográficas, admite búsqueda geoespacial y cálculo de distancia.
  • GeoShape (forma geográfica): se utiliza para almacenar datos de formas geográficas complejas, como polígonos, líneas y puntos.
  • IP (dirección IP): se utiliza para almacenar direcciones IP y admite operaciones de agregación y consulta de rango de direcciones IP. Esencialmente un campo largo

Los tipos de datos especializados permiten que Elasticsearch maneje mejor los datos relacionados con la geolocalización y las direcciones de red

2. Operación CRUD del documento ES

nuevo documento

1) Nueva forma de especificar id:

PUT /my_index/_doc/1

{
    
    
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

2) Añadir sin especificar el id:

PUT /my_index/_doc

{
    
    
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

3) Se agrega el método de especificar el id para evitar modificaciones erróneas debido al mismo id, y se puede especificar el tipo de operación:

PUT /my_index/_doc/1?op_type=create

{
    
    
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

4) Active la creación automática de índices:
verifique el estado del interruptor auto_create_index:

GET /_cluster/settings

inserte la descripción de la imagen aquí
Como se muestra en la figura anterior, no hay un campo auto_create_index, o falso significa que no está habilitado Habilite
la creación automática de índices:

PUT _cluster/settings

{
    
    
 "persistent": {
    
    
 "action.auto_create_index": "true"
 }
}

Una vez habilitada la creación automática de índices, el formato de los datos coincidirá automáticamente con la asignación.

ver documento

1) Ver por identificación

GET /my_index/_doc/1

2) Ver múltiples

POST /my_index/_doc/mget

{
    
    
 "ids" : ["1", "2"]
}

modificar documento

1) Actualizar datos del documento

POST /my_index/_doc/1/_update

{
    
    
  "doc": {
    
    
    "content": "Elasticsearch is a distributed, RESTful search and analytics platform."
  }
}

2) Agregue un campo al campo _source

POST my_index/_update/1

{
    
    
 "script": "ctx._source.lable = es"
}

3) Para el campo _source, elimine un campo

POST my_index/_update/1

{
    
    
 "script": "ctx._source.remove(\"lable \")"
}

4) Actualice los campos del documento especificado de acuerdo con los parámetros de condición

upsert Cuando el documento especificado no existe, el contenido contenido en el parámetro upsert se insertará en el índice como un nuevo documento; si el documento especificado existe, el motor ElasticSearch ejecutará la lógica de actualización especificada.

POST my_index/_update/1

{
    
    
	 "script": {
    
    
		 "source": "ctx._source.lable+= params.lable",
		 "params": {
    
    
		 "lable": "good"
		 }
	 },
	 "upsert": {
    
    
		 "lable": "just so so"
		 }
}

eliminar documento

DELETE /my_index/_doc/1

Supongo que te gusta

Origin blog.csdn.net/csdn570566705/article/details/131204208
Recomendado
Clasificación