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,决定了数据类型,建立倒排索引的行为,还有进行搜索的行为
mapping的核心数据类型:
 string 或 text 字符串
 byte、short、 int、 long 数值型
 float、double 浮点型
 true、false Boolean型
 data 日期型
dynamic mapping(插入数据让es自动化的推测出数据的类型)
 true or false 自动化推测出的类型 Boolean
 123 自动化推测出的类型 long
 123.45 自动化推测出的类型 double
 2018-01-01 自动化推测出的类型 data
 “hello world” 自动化推测出的类型 string/text
查看mapping GET /index/_mapping/type
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/x15011238662/article/details/84971817
今日推荐