Tipo de campo ES
|Tipo principal|Tipo de cadena|Cadena, texto, palabra clave|
|Tipo entero|Entero, tipo largo, corto, byte|
|Tipo flotante|doble, flotante, half_float, scaled_float|
|Tipo lógico|Booleano| p>
Tipo de fecha|Fecha| p>
|Tipo de rango|Rango|
Tipo binario|Binario|
|Tipo compuesto|Tipo de matriz|Matriz |
|Tipo de objeto| Objeto|
|Tipo anidado|Anidado|
|Geotipo|Tipo de coordenadas geográficas|Punto geográfico|
Mapa geográfico|Forma geográfica|
|Tipo especial|Tipo de IP|ip|
|Tipo de rango|Completo|
|Tipo de recuento de tokens|Recuento de tokens|
|Tipo de archivo adjunto| Adjunto|
Tipo de extracción|Filtro|
(1) Cadena
El tipo de cadena se usa ampliamente en versiones anteriores de ElasticSearch. A partir de ElasticSearch 5.x, las cadenas ya no son compatibles y se reemplazan por tipos de texto y palabras clave.
(2) Texto
El tipo de texto debe usarse cuando desee buscar campos en texto completo, como contenido de correo electrónico y descripciones de productos. Después de configurar el tipo de texto, se analiza el contenido del campo y el analizador divide la cadena en términos de palabras antes de generar el índice invertido. Los campos de tipo texto no se utilizan para ordenar y rara vez se utilizan para agregación.
(3) Palabras clave
Los tipos de palabras clave son adecuados para indexar campos estructurados como direcciones de correo electrónico, nombres de host, códigos de estado y etiquetas. Si necesita filtrar campos (por ejemplo, buscar artículos publicados con atributo de estado en blogs publicados), ordénelos y agreguelos. Los campos de tipo de palabra clave solo se pueden buscar por valores exactos.
Elija el tipo de datos más pequeño posible que cumpla con los requisitos. Por ejemplo, si el valor máximo de un campo no supera 100, puedes elegir el tipo de byte. La persona de mayor edad registrada por Guinness hasta el momento tiene 134 años. Para campos de edad, lo corto es suficiente. Cuanto más corta sea la longitud del campo, más eficientes serán la indexación y la búsqueda.
Para float, half_float y scaled_float, -0.0 y +0.0 son valores diferentes. Usar una consulta $term para encontrar -0.0 no coincidirá con +0.0. Del mismo modo, en una consulta de rango, donde el límite superior es -0,0 y el límite inferior es +0,0, -0,0 no coincidirá.
Tomando scaled_float como ejemplo, el precio solo debe ser preciso al minuto. El factor de escala del campo con un precio de 57,34 es 100 y es 5734 cuando se almacena.
Se prefiere utilizar el tipo de punto flotante scaled_float con un factor de escala.
El sistema de cronometraje que utilizamos los humanos es bastante complejo: los segundos son UNIX básico, 60 segundos son 1 minuto, 60 minutos son 1 hora, 24 horas es un día... Si los ordenadores usaran la misma forma de mantener tiempo, obviamente se utilizan múltiples variables para almacenar el año, mes, día, hora y minutos, con operaciones de acarreo constante, además de manejar el año bisiesto y el segundo intercalar ocasionales, y coordinar diferentes zonas horarias.
El tipo de fecha se puede expresar en los siguientes formatos:
(1) Cadena de formato de fecha, como "2018-01-13" o "2018-01-13 12: 65438".
(El número de milisegundos desde el nacimiento de UNIX (la época se refiere a la hora UTC 1970 65438 + 1 de octubre: 00: 00).
(3) Desde la época de 3) segundos enteros.
ElasticSearch convierte internamente datos de fecha a UTC y los almacena como un tiempo desde la época.
Ejemplo: datos con formato de fecha
(1) Crear índice
(2) Escribir documento
(3) Consulta por lotes p> p>
Los tipos lógicos (tipos booleanos) pueden aceptar valores verdadero/falso/"verdadero"/"falso".
(1) Elimina el índice antes de crearlo.
(2)Agregar un documento
(3)Verificar el documento
El campo binario se refiere a los datos binarios almacenados en el índice representado por base64, que se puede utilizar para almacenar datos binarios, como imágenes. De forma predeterminada, los campos de este tipo sólo se almacenan no indexados. Los tipos binarios solo admiten el atributo index_name.
En ElasticSearch, no existe un tipo de datos de matriz especial, pero de forma predeterminada, cualquier campo puede contener 0 o más valores, lo que significa que cada campo es un tipo de matriz de forma predeterminada, pero el tipo de matriz El tipo de datos El valor de cada elemento debe ser el mismo. En ElasticSearch, las matrices están disponibles listas para usar y se pueden usar directamente sin ninguna configuración.
En la misma matriz, los tipos de datos de los elementos de la matriz son los mismos. ElasticSearch no admite elementos de múltiples tipos de datos: [10, "alguna cadena"]. Los tipos de matriz más utilizados son:
(1) Matriz de caracteres: ["uno", "dos"]
(2) Matriz de enteros: productid:[ 1, 2] p>
(3) Matriz de objetos (documento): "Usuario": [{"Nombre": "Mary", "Edad": 12}, {"Nombre": "John", "Edad": 10} ], la matriz de objetos se expande en ElasticSearch.
JSON es de naturaleza jerárquica y los documentos contienen objetos anidados.
El documento anterior es un JSON en su conjunto. JSON contiene un empleado y el empleado también contiene un nombre completo.
El campo tipo ip se utiliza para almacenar direcciones IPv4 o IPv6.
(1)Crear índice
(2)Campo de consulta