Tipo de dados ElasticSearch objecto

mapeamento artigo anterior nós sabemos o tipo de tipo digital e data para identificar, bem como mapeamento de dois papéis importantes.

Tipo Portanto, quando se cria o índice, não é pré-definida e campo de propriedade associados, o campo de data podem ser assim tratados até à data, o processamento digital da área digital, o valor de cadeia tratamento campo de cadeia e semelhantes.

tipos de dados suportados:

(1) tipo de dados de núcleo (tipos de dados de núcleo)

    Character: string, tipos de cordas, incluindo
    texto e palavra-chave
    
    tipo de texto é usado para indexar o texto longo, o texto será indexado antes da palavra, a palavra combinação da conversão, indexação. Es permitido para recuperar estas palavras. Tipo de texto não pode ser usado para classificar e polimerização.
    
    Palavra-Chave Digite palavra não é necessária, o filtro pode ser usado para recuperar, classificar e agregação. chave tipo de campo em si só pode ser recuperada
    
    tipo digital: long, integer, short, byte , duplo, flutuador
    tipo Data: Data
    booleana: boolean
    tipo binário: binário
 

(2) Tipo de dados complexo (tipos de dados complexos)

    tipo de matriz (matriz de tipo de dados): nenhum tipo de matriz elemento de matriz especial do tipo especificado, por exemplo:
        matriz de caracteres: [ "um", "dois "]
        inteiro matriz: [1, 2]
        array: [1 [ 2, 3]] é equivalente a [1, 2, 3]
        matriz de objectos: [{ "nome": " Maria", "idade": 12}, { "nome": "John", "idade": 10} ]
    tipo de objecto (tipo de dados de objecto): _ _ objecto para um único objecto JSON;
    tipo aninhada (nested tipo de dados): _ _ aninhada para matriz JSON;

(3) o tipo de localização (tipos de dados Geo)

    Tipo coordenadas geográficas (Geo-ponto de tipo de dados): _ geo_point _ para coordenadas de latitude e longitude;
    geográfica tipo de forma (Geo-Forma tipo de dados): _ geo_shape _ uma forma complexa semelhante de um polígono;

(4) um tipo específico (tipos de dados especializadas)

    Para IPv4 (IPv4 tipo de dados): _ ip _ endereços IPv4;
    Tipo de conclusão (Conclusão tipo de dados): _ _ conclusão fornecer sugestões auto-completar;
    token tipo COUNT (Token contagem tipo de dados): _ token_count _ para estatística fez uma marca o número de campos de índice, este valor será sempre aumentar e não diminuir por causa das condições do filtro.
    mapeador de murmur3
    Tipo: através do plugue, para calcular o valor de hash do índice por _ murmur3 _;
    tipos adicionais (tipo de dados Anexo): usando o mapeador de anexos
    ligar suportes _ Anexos _ índice, como formato do Microsoft Office, Open Document Format, o ePub , HTML e assim por diante.

 

atributos suportados:

"Store": false // se definir este campo só é armazenado separado do campo fonte_, o padrão é falso, apenas a pesquisa, não poderia obter o valor

"Index": true // palavra, independentemente da palavra é: false, definido como falso, o campo não será indexado
   
"analisador": "ik" // palavra especificada, o tokenizer padrão para o analisador padrão

"Boost": @ 1,23 fração de peso do nível de campo, o valor padrão é de 1,0

"Doc_values": false // para o campo not_analyzed, são ativadas por padrão, campo de segmentação não pode ser usado para classificação e agregação pode melhorar o desempenho de grandes, memória de poupança

"Fielddata": { "format": "desativado"} // para o campo de texto, pode melhorar o desempenho quando envolvidos na triagem ou agregação, independentemente do campo unificado é recomendado o uso da palavra doc_value

"campos": { "cru" : { "type": "string", "índice": "not_analyzed"}} // pode proporcionar uma pluralidade de modo campo de índice, o valor do mesmo campo, uma palavra, nem um palavra
            
"ignore_above": 100 // mais do que 100 caracteres de texto, ele será ignorado e não indexado

"Include_in_all": ture // Define se este campo contém _all campo, o padrão é true, a menos que o índice é definido como sem opções

"Index_options": "docs" // 4 docs parâmetro opcional (documentos número índice), freqs (número + freqüência de palavra), posições (Documento n ° + + posição a frequência das palavras, a distância normalmente utilizados para consulta), offsets (Documento n ° + freqüências + + posição de deslocamento, é geralmente utilizado no campo destacado) posição do campo de texto padrão, outros documentos padrão

"Normas": { "Enable": true, "carregamento": "preguiçoso"} // configuração padrão do campo de texto, independentemente dos campos de texto: Padrão { "habilitar": false}, quando o fator de comprimento de memória e aumentar índice, sugeriu a necessidade classificações de uso em campo, extras consumo aumenta memória

"Null_value": "NULL" // definir alguns valores iniciais dos campos em falta, somente a corda pode ser usado, campo palavra valor nulo será palavra

"Position_increament_gap": 0 // impacto ou de proximidade consultas de consulta, os dados podem ser fornecidos no campo multi-valor iluminado campo de texto, pode especificar a consulta slop intervalo, o valor padrão é 100

"Search_analyzer": "ik" // conjunto separador de palavras quando o padrão de pesquisa é consistente com Ananlyzer, como Ngram + padrão com o índice quando utilizado com um prompts automáticos padrão para completar a pesquisa

"Semelhança": "BM25" // TF default / algoritmo IDF, especificar uma política de taxa de campo, válido apenas para cordas e palavra tipo

"Term_vector": "não" // default não armazena as informações vetor, sim parâmetros apoio (armazenamento prazo), with_positions (termo + posição), with_offsets (termo + offset), with_positions_offsets (termo + localização + offset) para destaque rápida rápido marcador vector pode melhorar o desempenho, mas irá aumentar o índice de volume aberto, não é adequado para uma grande quantidade de dados

 

classificação Mapa:

(1) mapeamento dinâmico:

Quando não ES visto antes se deparar com um campo no documento, ele vai fazer uso de mapeamento dinâmico para determinar o tipo do campo, e adicionar automaticamente um mapeamento para o campo.

Este comportamento pode ser controlado por ajuste dinâmico, ele pode aceitar as seguintes opções:

    verdade: Os valores padrão. Adicionar campos dinâmicos
    falsa: ignorar os novos campos
    estrito: Se você encontrar um campo estranho, lançar uma exceção

dinâmica disposta na raiz pode ser aplicado sobre qualquer objecto ou objecto campo tipo.
 

 

Aqui destacamos alguns tipo de objeto

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

Nós olhamos para este campo de endereço contém os três campos é o objeto deste tipo deste campo, vamos adicioná-lo criado com sucesso

 

Nós visualizar a próxima criar automaticamente um mapeamento de mapeamento

GET / 1ib5 / pessoa / _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 descrição oral, descrição do quadro vermelho é o endereço

#如果是复杂的数组包含对象
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]
}

 

Publicado 298 artigos originais · ganhou elogios 107 · Exibições 140.000 +

Acho que você gosta

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