Elasticsearch 官方本來是有提供官方的 SDK 可以用來操作 Elasticsearch
不過…官方版的 SDK 在存取 Elasticsearch 時,是把自己當作 Elasticsearch Cluster 的一員來看待
因此會有包括 heartbeat 等行為在 SDK 裡自動發生。
理論上這麼做的好處是,SDK 可以看見整個 Cluster 的狀態,因此可以比較妥善地選擇存取的節點
不過代價就是維持 Elasticsearch 連線所需要的資源更多、連線速度感覺好像變慢
此外,對於跑在 AWS Lambda 的程式來說,有不少潛在的缺點。
在 Elasticsearch 官方的描述 [1] 中,有建議了可以考慮使用 Jest [2],因此就來試試它了。
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2018年3月6日 星期二
使用 Jest 搜尋 Elasticsearch
2017年11月16日 星期四
在 Elasticsearch 上安裝 X-Pack
因為想要監控 Elasticsearch,所以就試著安裝了 X-Pack。
X-Pack 安裝流程請直接參考官方文件 [1] XD
因為只有幾個動作而已,這裡就省略了。
yum 鎖定軟體版本
以我的狀況來說,因為我的 Elasticsearch 有使用一些有限定版本的擴充套件
因此要避免 yum 不小心幫我把 Elasticsearch 升級。
要作到這個效果,可以使用 versionlock 這個工具
例如以下這樣,可以把 elasticsearch 和 kibana 套件鎖在目前安裝的版本上。
yum install yum-plugin-versionlock yum versionlock elasticsearch-* yum versionlock kibana-*
參考資料
2017年9月21日 星期四
Elasticsearch 去除重複資料
最近一直在處理 Elasticsearch 資料重複的問題
程式當中想要在插入資料之前,先搜尋有沒有重複的資料
如果有的話就先把重複的資料砍到剩下一筆,然後針對那一筆做資料更新。
不過實務上,程式跑起來有些會成功完成 deduplication,但有些則依然重複。