ES mapping映射及優化


mapping映射

主要類型:

 

  • 同一index下,不同type中如果有相同filed;es進行mapping映射的時候,按照先寫進去的指定類型;比如同一index,包含的type中都有key1字段,如果第一次寫進去的是long類型,后面所有type中key1字段都按照long類型格式化。

  • nested和array的區別
  • es中會把json數組平鋪存儲:"key":[{"a":1,"b":"abc"},{"a":2,"b":"xyz"}],es會把上面的數組存儲為:"key":{"a":[1,2],"b":["abc","xyz"]};所以如果我想的到當a>1的時候獲取b的值,是拿不到我們想要的結果的!

  • 如果想要獲取到我們想要的結果,需要指定映射為“nested”類型 "key":{ "type":"nested", "property":{ "a":{"type":"long"} "b":{"type":"string"} } }
  • es默認不是這種格式,如果指定為nested類型,寫入和查詢的性能會受到影響!
  • 如果單個term最大長度超過32kb(32766)不可修改,寫不進es

    • 可以針對比較大的內容做正則提取,作為單獨字段存儲
  • ignore_above:20(允許寫入20個字節)

    • 超過這個值可以寫進去es,但是無法搜索到(超過之后,寫進es不會做索引)

什么是DocValues?為什么要用DocValues ?

Elasticsearch cluster中的內存多半都被消耗在了field data(也就是我們常說的正排索引)上,field data主要用於:

對索引操作的一些優化

http://itindex.net/detail/54945-elasticsearch2.0--索引-優化

ES中的分詞器

https://my.oschina.net/xiaohui249/blog/260993


免責聲明!

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



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