前言革命同志是塊磚,哪裏須要哪裏搬!這不,老大發話,要我在組內作一個 Elasticsearch 技術分享。這不話題一轉,開始看起來 ES 了。雖然好久以前用過 ELK 作過日誌監控系統,可是畢竟時隔已久,仍是得從頭看起。固然手頭的活也不能停,話很少說,開始分享。先看看什麼是 ES?node
Elasticsearch 是分佈式搜索和分析引擎。算法
Elasticsearch 爲全部類型的數據提供近實時(near real-time)的搜索和分析。sql
經常使用場景:編程
像下圖中使用的設計:緩存
特色:數據結構
集羣部署,易於擴展。節點(node)分片(shard),將新的 node 添加到集羣時,ES 會自動遷移 shard 到新 node 上,從新平衡集羣。併發
倒排索引也能夠成爲反向索引。分佈式
做爲開發我們常常接觸到的就是 MySql,假設有一堆技術書籍,而且已經編上號。性能
id | book_name |
---|---|
1 | Java 併發編程之美 |
2 | Java 開發手冊 |
3 | 深刻分佈式緩存 |
4 | Java 併發程序設計 |
5 | 算法 |
6 | 數據結構與算法 |
此時我想查詢全部關於 併發 的書籍。網站
select * from table_book where book_name like %併發%;
而後會開始遍歷表格,查找到 1和4兩條記錄。
首先會將每一個名稱進行分詞,好比 Java 併發編程之美
會被分爲 Java
併發
編程
之
美
。
分詞結束以後按照詞關聯書籍的編號。
term | ids |
---|---|
Java | 一、二、4 |
併發 | 一、4 |
編程 | 1 |
算法 | 五、6 |
分佈式 | 3 |
... | ... |
在倒排索引中搜索併發,而後進行檢索,就很容易定位到關於併發書籍的編號。
Lucene 能夠理解爲一個開源的、高性能、可伸縮的信息搜索庫。使用 Java 開發,封裝了各類倒排索引和搜索的API。至關於一個組件。
而 ES 就是在 Lucene 之上進行的開發,從而能夠高可用、集羣部署、故障遷移、備份容災等。
就這麼多,先知道個 ES 是幹嗎的。後續再慢慢看、慢慢總結。