Operación básica de elasticsearch de Elastic

1. Conceptos básicos

Elasticsearch también es una biblioteca de búsqueda de texto completo basada en Lucene, y su esencia es almacenar datos.Muchos conceptos son similares a MySQL.

Relación de comparación:

Índice (índices) ---------------------Bases de datos
  Tipo de base de datos (tipo) ------------------ - -------Tabla de datos tabla [7.x obsoleta]
    documento (Documento)-------------Fila fila
        campo (Campo)- - -----------------------Columna de columnas

Cabe señalar que Elasticsearch en sí está distribuido, por lo que incluso si solo tiene un nodo, Elasticsearch realizará operaciones de fragmentación y copia en sus datos de forma predeterminada. Cuando agrega nuevos datos al clúster, los datos también estarán en el nuevo agregado. Los nodos están equilibrados.

2. Operación de índice

1. Índice de consulta

Verifique qué bibliotecas de índices están disponibles en es (similar a la base de datos mysql) : GET /_cat/indices?v

# es默认对中文的分词 支持不友好,它认为一个字代表一个词
# 查看es的分词方式
GET _analyze
{
  "text": ["我是中国人"]
}
{
  "text": "我爱你你爱我"
}

# 给es配置中文分词器:ik分词器
# 指定ik分词器分词:ik_smart粗粒度分词
#                   ik_max_word细粒度分词
GET _analyze
{
  "text": "咖喱人,鸡你太美,你这个老六",
  "analyzer": "ik_max_word"
}

Habrá un índice llamado .kibana y .kibana_task_manager por defecto en es

nombre del campo Significado
salud

verde (grupo completo)

amarillo (punto único normal, grupo incompleto)

rojo (un solo punto no es normal)

estado se puede usar
índice nombre de índice
uuid índice de número uniforme
en cuantos nodos maestros
reps ¿Cuántos nodos esclavos?
docs.count número de documentos
docs.borrado Cuántos documentos se eliminaron
tienda.tamaño Huella general
pri.store.size El nodo maestro representa

2. Crea un índice

PUT /nombreíndice

Parámetros opcionales: especifique el fragmento y la copia, el fragmento predeterminado es 3 y la copia es 2.

PUT /liush
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 3
  }
}

3. Ver la información específica del índice

GET /nombreíndice

4. Eliminar el índice

DELETE /nombre de biblioteca de índice

3. Configuración de mapeo (_mapping)

Con el índice, el siguiente paso es agregar datos. Sin embargo, la asignación debe definirse antes de que se puedan agregar datos.

¿Qué es un mapeo?

El mapeo es el proceso de definir un documento, qué campos contiene el documento, si estos campos están guardados, indexados, segmentados por palabras, etc.

Solo cuando la configuración es clara, Elasticsearch nos ayudará a crear la biblioteca de índices (no necesariamente)

1. Crear un campo de mapeo

PUT /nombre de biblioteca de índice/_mapping
{   "propiedades": {     "nombre de campo": {       "tipo": "tipo",       "índice": verdadero,       "almacenar": verdadero,       "analizador": "separador de palabras"     }   } }








Nombre del campo: similar al nombre de la columna, se pueden especificar muchos campos en las propiedades.

Cada campo puede tener muchos atributos. Por ejemplo:

  • tipo:类型,Cadena(texto palabra clave) Numérico(entero largo flotante doble) fecha booleana

  • índice: si indexar, el valor predeterminado es verdadero

  • almacenar: si almacenar, el valor predeterminado es falso, incluso si es falso, se almacenará en _source, si es verdadero, se almacenará una copia adicional

  • analizador: separador de palabras, aquí use ik separador de palabras: oik_max_wordik_smart

PUT /liush
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 3
  }
}

POST /liush/_mapping
{
  "properties": {
    "title": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "images":{
      "type": "keyword",
      "index": "false"
    },
    "price": {
      "type": "long"
    }
  }
}

2. Ver la relación de mapeo

Sintaxis: GET /nombre de biblioteca de índice/_mapping

4. Nuevo documento (documento)

Con índices, tipos y asignaciones, puede agregar, eliminar, modificar y consultar documentos.

1.  Jugabilidad básica

Si queremos especificar el id cuando lo agregamos nosotros mismos, podemos hacer esto:

POST /nombre de biblioteca de índice/_doc/valor de id
{     ... }

POST /liush/_doc/1
{
  "title": "小米手机",
  "images": "http://xiaomi.com/xiaomi.igp",
  "price":2999
}

GET /liush/_search

2. Juicio inteligente

De hecho, Elasticsearch es muy inteligente. No necesita establecer ninguna asignación para la biblioteca de índices. También puede juzgar el tipo de acuerdo con los datos que ingresa y agregar dinámicamente asignaciones de datos.

POST /liush/_doc/2
{
    "title":"小米手机",
    "images":"http://image.jd.com/12479122.jpg",
    "price":2899,
    "stock": 200,
    "saleable":true,
    "attr": {
        "category": "手机",
        "brand": "小米"
    }
}

Además, agregamos varios campos de inventario de existencias, si el vendible está en los estantes y otros atributos de attr. 

stock, vendible y attr se han mapeado correctamente.

Si son datos de tipo cadena, se agregarán dos tipos: texto + palabra clave. Como en el ejemplo anterior categoría y marca

5. Eliminar datos

La eliminación utiliza la solicitud DELETE. Del mismo modo, debe eliminarse de acuerdo con la identificación:

Sintaxis: DELETE /nombre de biblioteca de índice/_doc/valor de id
Ejemplo: DELETE /liush/_doc/2

6. Actualizar documentos

Sintaxis:
POST /nombre de biblioteca de índice/_actualización/valor de id
{     doc:{         "atributo":"valor"     } }



POST /liush/_update/1
{
  "doc": {
    "title":"aaa"
  }
}

Supongo que te gusta

Origin blog.csdn.net/qq_45037155/article/details/129696147
Recomendado
Clasificación