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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM