Objeto tipo de datos de Elasticsearch

Artículo anterior mapeo sabemos el tipo de tipo digital y la fecha de identificar, así como la asignación de dos funciones importantes.

tipo Por lo tanto, cuando se crea el índice, se no pre-definidos y campo de la propiedad asociada, el campo de fecha pueden ser así tratados hasta la fecha, el procesamiento digital del campo digital, el tratamiento campo de cadena valor de cadena y similares.

tipos de datos soportados:

(1) Tipo de datos núcleo (tipos de datos básicos)

    Carácter: cadena, incluyendo tipos de cadenas
    de texto y la palabra clave
    
    tipo de texto se utiliza para indexar el texto largo, el texto será indexado antes de la palabra, la palabra combinación de la conversión, indexación. Es permitido para recuperar estos términos. Tipo de texto no se puede utilizar para ordenar y polimerización.
    
    Palabra Clave palabra no es necesaria, el filtro se puede utilizar para recuperar, clasificar y agregación. campo de tipo de palabra clave en sí sólo puede ser recuperada
    
    tipo digital: largo, entero, corto bytes , doble, flotador
    tipo Fecha: Fecha
    de Boole: boolean
    tipo binario: binario
 

(2) complejo de tipo de datos (tipos de datos complejos)

    tipo de matriz (Array tipo de datos): no conjunto de elementos de tipo de matriz especial del tipo especificado, por ejemplo:
        matriz de caracteres: [ "uno", "dos "]
        número entero array: [1, 2]
        array matriz: [1 [ 2, 3]] es equivalente a [1, 2, 3]
        matriz de objetos: [{ "name": " María", "edad": 12}, { "name": "edad" "John": 10} ]
    tipo de objeto (tipo de datos Object): _ _ objeto para un solo objeto JSON;
    tipo anidado (tipo de datos anidada): _ _ anidada para array JSON;

(3) el tipo de ubicación (tipos de datos GEO)

    Llene coordenadas geográficas (Geo-punto de tipo de datos): _ geo_point _ para latitud y longitud coordenadas;
    geográfica tipo de forma (Geo-Forma tipo de datos): _ geo_shape _ una forma compleja similar de un polígono;

(4) un tipo específico (tipos de datos especializados)

    Para IPv4 (IPv4 tipo de datos): _ _ ip direcciones IPv4;
    Tipo de Terminación (tipo de datos Finalización): _ _ finalización proporciona sugerencias de autocompletado;
    tipos RECUENTO Token (Token tipo de datos recuento): _ token_count _ para las estadísticas hacen marca el número de campos de índice, este valor siempre aumenta, no disminuye debido a las condiciones de filtro.
    asignador de murmur3
    Type: a través del tapón, para calcular el valor hash del índice _ murmur3 _;
    tipos adicionales (de tipo de datos adjuntos): el uso de los asignador de archivos adjuntos
    enchufe soportes _ adjuntos _ índice, como el formato de Microsoft Office, Open Document Format, el ePub , HTML y así sucesivamente.

 

atributos soportados:

"Tienda": false // si un conjunto separado de este campo se almacena separado de campo _source, el valor predeterminado es falso, sólo la búsqueda, no se pudo obtener los valores

"Índice": true // palabra, independientemente de la palabra es: false, el valor false, el campo no será indexado
   
"analizador": "ik" // palabra especificada, la tokenizer predeterminado para el analizador de norma

"Boost": @ 1.23 fracción en peso del nivel de campo, el valor predeterminado es 1,0

"Doc_values": false // para el campo not_analyzed, están habilitados de forma predeterminada, el campo de segmentación no se puede utilizar para la clasificación y agregación puede mejorar el rendimiento de los grandes, la memoria de ahorro

"Fielddata": { "formato": "bloqueada"} // para el campo de la palabra, puede mejorar el rendimiento cuando se involucren en la clasificación o agregación, independientemente del campo unificado se recomienda el uso de la palabra doc_value

"campos": { "en bruto" : { "tipo": "cadena", "índice": "not_analyzed"}} // puede proporcionar una pluralidad de modo de campo de índice, el valor del mismo campo, una palabra, no una palabra
            
"ignore_above": 100 // más de 100 caracteres de texto, se tendrá en cuenta y no indexada

"Include_in_all": tura // Establece si este campo contiene _all campo, el valor predeterminado es cierto, a menos que el índice se establece en ninguna opción

"Index_options": "Docs" // 4 docs opcionales de parámetros (documentos números índice), freqs (número de documento + frecuencia de la palabra), posiciones (Documento No. + + posición de frecuencia de la palabra, la distancia generalmente se usa para consulta), las compensaciones (Documento No. + Frecuencias + + posición de desplazamiento, se utiliza generalmente en el campo resaltado) posición por defecto campo palabra, otros docs predeterminados

"Normas": { "Activar": true, "carga": "perezosa"} // palabra de configuración por defecto de campo, independientemente de los campos de palabras: por defecto { "activar": false}, cuando el factor de longitud de la memoria y el índice de Boost, sugirieron la necesidad calificaciones campo de uso, aumenta el consumo de memoria adicionales

"Null_value": "NULO" // establecer algunos valores iniciales de los campos que faltan, sólo la cadena puede ser usada, valor nulo campo de palabra será la palabra

"Position_increament_gap": 0 // impacto de proximidad o consultas de consulta, los datos se puede disponer en el campo de valor múltiple iluminado campo de palabras, puede especificar el intervalo de consulta de decantación, el valor por defecto es 100

"Search_analyzer": "ik" // conjunto separador de palabras cuando el incumplimiento de búsqueda es consistente con Ananlyzer, como + n-gramas de serie con el índice cuando se utiliza con un avisos automáticos estándar para completar la búsqueda

"Similitud": "BM25" // por defecto TF / algoritmo de FDI, especifica una política de tipo de campo, sólo es válido para la cadena y tipo de word

"Term_vector": "no" // por defecto no almacena la información vectorial, sí los parámetros de soporte de almacenamiento (plazo), with_positions (CP + posición), with_offsets (CP + offset), with_positions_offsets (CP + ubicación + offset) para el punto culminante rápida rápida rotulador vector puede mejorar el rendimiento, pero aumentará el índice de volumen abierto, no es adecuado para una gran cantidad de datos

 

Mapa Clasificación:

(1) mapeo dinámico:

Cuando no eS visto antes venir a través de un campo en el documento, se hará uso de mapeo dinámico para determinar el tipo del campo, y añadir automáticamente una asignación para el campo.

Este comportamiento puede ser controlado por el ajuste dinámico, que puede aceptar las siguientes opciones:

    verdad: Los valores por defecto. Añadir campos dinámicos
    falsa: ignorar los nuevos campos
    estricta: Si se encuentra con un campo extraño, una excepción

dinámica dispuesto en la raíz se puede aplicar en cualquier campo de tipo de objeto o un objeto.
 

 

Aquí destacamos algunos tipo de objeto

#object类型
PUT /1ib5/person/1
{
  "name":"Tom" ,
  "age":25,
  "birthday":"1985-12-12",
  "address":{
      "country": "china",
      "province":"guangdong",
      "city":"shenzhen"
  }
}

Nos fijamos en este campo de dirección contiene los tres campos es el objeto de este tipo de este campo, lo añadiremos creado correctamente

 

Consideramos que la próxima crear automáticamente un mapeo mapeo

GET / 1ib5 / persona / _mapping

{
  "1ib5" : {
    "mappings" : {
      "person" : {
        "properties" : {
          "address" : {
            "properties" : {
              "city" : {
                "type" : "text",
                "fields" : {
                  "keyword" : {
                    "type" : "keyword",
                    "ignore_above" : 256
                  }
                }
              },
              "country" : {
                "type" : "text",
                "fields" : {
                  "keyword" : {
                    "type" : "keyword",
                    "ignore_above" : 256
                  }
                }
              },
              "province" : {
                "type" : "text",
                "fields" : {
                  "keyword" : {
                    "type" : "keyword",
                    "ignore_above" : 256
                  }
                }
              }
            }
          },
          "age" : {
            "type" : "long"
          },
          "birthday" : {
            "type" : "date"
          },
          "name" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          }
        }
      }
    }
  }
}

Vemos abordar descripción oral, descripción del marco rojo es la dirección

#如果是复杂的数组包含对象
PUT /lib6/person/1
{
  "persons" :
  [
    {"name":"lisi","age":27},
    {"name":"wangwu","age":26},
    {"name":"zhangsan","age":23}
  ]
}

#底层存储.
{
"persons.name":["lisi", "wangwu" ," zhangsan"],
"persons.age":[27,26,23]
}

 

Publicados 298 artículos originales · ganado elogios 107 · Vistas de 140.000 +

Supongo que te gusta

Origin blog.csdn.net/ywl470812087/article/details/104858139
Recomendado
Clasificación