zoukankan      html  css  js  c++  java
  • es中对mapping的理解

    (1)往es里面直接插入数据,es会自动建立索引,同时建立type以及对应的mapping

    (2)mapping中就自动定义了每个field的数据类型

    (3)不同的数据类型(比如说text和date),可能有的是exact value,有的是full text

    (4)exact value,在建立倒排索引的时候,分词的时候,是将整个值一起作为一个关键词建立到倒排索引中去;full text,会经历各种各样的处理,分词,normaliztion(时态转换,同义词转换,大小写转换),才会建立到倒排索引中去。

    (5)exact value和full text类型的field决定了,在一个搜索过来的时候,对exact value field或者是full text field进行搜索的行为不一样,会跟建立倒排索引的行为保持一致;比如说exact value搜索的时候,就是直接按照整个值进行匹配,full text query string,也会进行分词和normalization再去倒排索引中去搜索。

    (6)可以用es的dynamic mapping,让其自动建立mapping,包括自动设置数据类型;也可以提前手动创建index和type的mapping,自己对各个field进行设置,包括数据类型,索引行为,分词器等等

      mapping就是index的type的元数据,每个type都有一个自己的mapping,决定了数据类型,建立倒排索引的行为,还有进行搜索的行为

      1、mapping核心的数据类型

      string,byte,short,integer,long,float,double,boolean,date

      2、dynamic mapping

      true or false --> boolean

      123      --> long

      123.45    --> double

      2017-01-01  --> date

      "hello world" --> string/text

      3、查看mapping

      GET /index/_mapping/type

      

  • 相关阅读:
    Cryptography中的对称密钥加解密:fernet算法探究
    HTTPS的工作原理
    最近要写的博客
    浅谈路由器软硬件架构
    组管理、权限管理、定时任务调度、磁盘分区
    matplotlib数据可视化
    tensorflow实现简单的卷积神经网络
    tensorflow实现简单的感知机
    tensorflow实现简单的自编码器
    区域生长算法(手动选取种子点)MATLAB
  • 原文地址:https://www.cnblogs.com/qinjf/p/8525445.html
Copyright © 2011-2022 走看看