關於elasticsearch在系統架構中的位置

2021-07-11 06:27:09 字數 792 閱讀 3912

最近由於專案的原因,開始接觸到es。在使用和學習的過程中,不斷的產生著各種疑問讓我略顯迷茫。所以開始撰寫這篇部落格來記錄和推進自己對elasticsearch的學習。

就現在而言,題目可能起的有點過於大。對於還並不算合格的程式設計師的我來說,談架構還為時尚早。但我希望在這篇文章終結的時候,自己能夠成長到有**架構的實力。自我打氣的話就此位置,開始記錄。

具有這樣的疑問可能只存在於我這樣的新手,對於混跡程式海洋的老鳥們而言,提這樣的問題可能略顯幼稚了。但是我現在就會有這樣的疑問,所以提出來,作為本文的開端。同時,也作為我深入學習es的探路石。

會有這樣的疑問也是因為當前專案中作為演示所用的架構事例。前端部署restful的web站點,並提供對存在於es的文件資料進行搜尋。我就會設想,如果在系統中資料都可以以這種方式進行儲存,那是不是就可以不需要資料庫了?

官網中提到,elasticsearch是乙個分布式搜尋服務,提供restful api,底層基於lucene。系統保證資料儲存安全,並具有強大的橫向擴充套件能力。那麼,elasticsearch可以提供高效的資料搜尋能力,又可以一定程度儲存資料,那我們為什麼還需要資料庫?僅僅用於資料來源儲存?為了搜尋,還要將資料庫中資料同步到es中,使用起來又一定程度浪費了儲存時間?為何?

因為存在這樣的因為,我開始了解決問題的行程:

1. 功能上講:es是乙個功能強大的全文搜尋引擎;資料庫是強大的資料管理軟體。

2. es的update api不是現成安全的

3. 往往直接抓到的資料並不能被直接檢索,需要先存到資料庫中,然後處理完成後同步到es中

《未完待續》

ElasticSearch關於倒排索引

在我們說倒排索引的時候讓我們先去了解一下什麼叫做正排索引 在說倒排索引之前我們先說說什麼是正排索引。正排索引也稱為 前向索引 它是建立倒排索引的基礎。這種組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維護 因為索引是基於文件建立的,若是有新的文件加入,直接為該文件建立乙個新的索引塊,掛接在...

關於ElasticSearch搜尋效果的問題分析

如何聚合多個節點或分片的資料生成返回結果?es是如何將相關度高的內容能放在前面的?在對mysql進行分庫分表的時候,經常會遇到乙個問題 如果查詢的資料分散在多張表中,因為涉及到組合多種表的資料,將會非常麻煩 對於有些分頁場景,更是乙個災難,所以對mysql分庫分表的時候經常會基於查詢維度來盡量避免跨...

關於ElasticSearch的一些膚淺的思考

1.文章背景 初次研究elasticsearch,關於其中的 集群 節點 主分片 從分片 索引 型別 文件 字段 這幾個概念,分析它們之間的主從關係。通過閱讀文件以及檢視例項,有了一點自己的心得體會。現在此做一下描述,如有不確之處,歡迎批評指正。2.本文不做討論的內容 本文僅對於 集群 節點 主分片...