一起來看Java最細緻的Elasticsearch講解

編程語言 ElasticSearch Java Lucene 編程界的小學生 編程界的小學生 2017-09-25

今天和大家一起講解討論一下Elasticsearch,分佈式,高性能,高可用,可伸縮的搜索和分析系統

1、什麼是搜索?

2、如果用數據庫做搜索會怎麼樣?

3、什麼是全文檢索、倒排索引和Lucene?

4、什麼是Elasticsearch?

1、什麼是搜索?

百度:我們比如說想找尋任何的信息的時候,就會上百度去搜索一下,比如說找一部自己喜歡的電影,或者說找一本喜歡的書,或者找一條感興趣的新聞(提到搜索的第一印象)

垂直搜索(站內搜索)

互聯網的搜索:電商網站,招聘網站,新聞網站,各種app

IT系統的搜索:OA軟件,辦公自動化軟件,會議管理,日程管理,項目管理,員工管理,搜索“張三”,“張三兒”,“張小三”;有個電商網站,賣家,後臺管理系統,搜索“牙膏”,訂單,“牙膏相關的訂單”

搜索,就是在任何場景下,找尋你想要的信息,這個時候,會輸入一段你要搜索的關鍵字,然後就期望找到這個關鍵字相關的有些信息。

2、如果用數據庫做搜索會怎麼樣?

做軟件開發的話,或者對IT、計算機有一定的瞭解的話,都知道,數據都是存儲在數據庫裡面的,比如說電商網站的商品信息,招聘網站的職位信息,新聞網站的新聞信息,等等吧。所以說,很自然的一點,如果說從技術的角度去考慮,如何實現如說,電商網站內部的搜索功能的話,就可以考慮,去使用數據庫去進行搜索。

1、比方說,每條記錄的指定字段的文本,可能會很長,比如說“商品描述”字段的長度,有長達數千個,甚至數萬個字符,這個時候,每次都要對每條記錄的所有文本進行掃描,來判斷說,你包不包含我指定的這個關鍵詞(比如說“牙膏”)

2、還不能將搜索詞拆分開來,儘可能去搜索更多的符合你的期望的結果,比如輸入“生化機”,就搜索不出來“生化危機”

一起來看Java最細緻的Elasticsearch講解

3、什麼是全文檢索和Lucene?

(1)全文檢索,倒排索引

什麼是全文檢索?

一起來看Java最細緻的Elasticsearch講解

(2)lucene,就是一個jar包,裡面包含了封裝好的各種建立倒排索引,以及進行搜索的代碼,包括各種算法。我們就用java開發的時候,引入lucene jar,然後基於lucene的api進行去進行開發就可以了。用lucene,我們就可以去將已有的數據建立索引,lucene會在本地磁盤上面,給我們組織索引的數據結構。另外的話,我們也可以用lucene提供的一些功能和api來針對磁盤上額

4、什麼是Elasticsearch?

一起來看Java最細緻的Elasticsearch講解


一起來看Java最細緻的Elasticsearch講解

若有興趣,歡迎來加入群,【Java初學者學習交流群】:458430385,此群有Java開發人員、UI設計人員和前端工程師。有問必答,共同探討學習,一起進步!

歡迎關注我的微信公眾號【Java碼農社區】,會定時推送各種乾貨(純乾貨的東西,並非Java基礎語法這些。)

相關推薦

推薦中...