(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
