Elasticsearch開發注意點
阿新 • • 發佈:2019-04-09
- 前言
在最近一段關於ES的開發過程中,不免踩了很多坑,現在我把一些注意點記錄下來。
- 注意點
根據碰到的時間依次列舉:
1.欄位型別
欄位型別一定要在建立索引的時候就確定, 因為一旦建立索引之後,索引中的一些欄位型別是不允許修改,如果一定要修改,只能重新建立索引,非常噁心。因此一定要注意欄位型別。
同時,欄位型別最好自己指定來建立,儘量不要使用自動建立索引。舉個例子,你的欄位型別可能是Bigdecmal,但是他預設會是float。那麼坑爹的點就來了,一旦你進行統計的SUM操作,你會發現得到的結果帶了很多的小數。那是因為float轉成double造成精度缺失,這裡最好的解決方法就是不要讓型別為float。
2.父子關係
在建立索引的時候,應該要理清索引之間的索引關係。如要進行父子文件關聯的,應在建立索引的時候就要考慮到,不然後面只能重建索引。(一些經常變動的欄位可能只能通過父子文件來進行查詢)
3.冗餘欄位
為了追求高效的搜尋速度,在ES中我們應該是能避免連表就避免連表。因為使用父子文件來進行搜尋,會影響搜尋的效能。因此如果是一些不會變動的欄位,並且搜尋的時候需要的一些在其他表裡面的欄位可能冗餘進來。這樣搜尋的時候,可以直接查詢出來。
未完待續。