菜鳥學習lucene之簡介(一)
什麼是lucene?
一種全文檢索技術。
lucene是Apache的一個全文檢索引擎工具包,通過lucene可以讓程式快速開發一個全文檢索功能。
lucene能夠做些什麼呢?
比如說百度搜索引擎它是怎麼實現的呢?以我現在的技術只能想到模糊查詢,可是資料量若是很大,模糊查詢效能會特別特別低。所以開始學習lucene技術。
1、搜尋引擎,比如:百度
2.站內搜尋(用的比較多),比如說淘寶裡邊的首頁搜尋
3.電腦開始選單中檔案系統的檢索功能
總結:
lucene 不是 搜尋引擎,它是一個技術。
lucene是一個工具包,不能獨立執行,不能單獨對外提供服務。
搜尋引擎 可以獨立執行,對外提供搜尋服務。
什麼是全文檢索?
全文檢索首先對要搜尋的文件進行分詞,然後形成索引,通過查詢索引來查詢文件。
簡答來說,全文檢索就是先建立索引,然後根據索引來搜尋的過程。
打比方來說,就是小時候查字典的過程,根據索引頁去查詢某個字很快。
相關推薦
菜鳥學習lucene之簡介(一)
什麼是lucene? 一種全文檢索技術。 lucene是Apache的一個全文檢索引擎工具包,通過lucene可以讓程式快速開發一個全文檢索功能。 lucene能夠做些什麼呢? 比如說百度搜索引擎它是怎麼實現的呢?以我現在的技術只能想到模糊查詢,可是資料量若是
菜鳥學習lucene之搜尋流程(二)
全文檢索的流程 索引流程和搜尋流程 索引流程:採集資料-->文件處理-->儲存到索引庫中 &nbs
菜鳥學習Nginx之入門開發留言板
本篇算是學習Nginx開山之作,後面還有會具體解析原始碼。 利用Nginx實現了一個登入、留言板、檔案上傳功能,功能非常簡單。但是對於如何開發一個Nginx模組來說已經足夠,希望能夠起到拋磚引玉的效果。 一、效果 登入介面: http://192.168.1.10/logi
菜鳥學習Nginx之ngx_buf_t
上一篇介紹的是ngx_pool_t記憶體池,對於Nginx來說萬物皆池化,接下來介紹的ngx_buf_t也是從記憶體池中獲取記憶體空間。 一、資料結構定義 1.1、資料結構定義 ngx_buf_t從名字上可知,是緩衝區的意思。與大多數開源軟體定義的緩衝區有點不同,它不僅僅能夠處理記憶
菜鳥學習Nginx之記憶體池
從今天開始深入介紹Nginx框架。 首先來談談我對《深入理解Nginx模組開發與架構解析》看法,這本書應該是到目前為止,市面寫的最詳細,最充實的書籍(沒有之一),值得擁有。然而此書對於一個小白來說,並不太適合,此書適合有相關使用經驗或者開發經驗,適合於進一步深造的同學。如果是小白,建議先瀏覽
菜鳥學習Nginx之啟動流程(3)
由於上一篇《菜鳥學習Nginx之啟動流程(2)》篇幅比較長,因此特地在寫一篇。而本篇將是啟動流程中最後一篇,主要介紹worker程序主函式。 一、ngx_worker_process_cycle worker程序主函式,內容並不是很多,但若是展開說明則將會把整個Nginx框架都牽扯進來。
菜鳥學習Nginx之啟動流程(2)
上一篇介紹了啟動流程中關於初始化ngx_cycle_t。由於ngx_cycle_t是Nginx核心結構,Nginx整個架構均是圍繞它構建起來的。雖然用了一整篇文章介紹ngx_cycle_t,但是感覺還是有些內容沒有介紹清楚。初始化ngx_cycle_t有一部分程式碼沒有介紹,ngx_conf_p
菜鳥學習Nginx之啟動流程(1)
對於C語言編寫的程式來說,main函式就是入口函式,把main函式研究清楚對於理解軟體架構、功能會有事半功倍的效果。好在Nginx的main函式並不是很複雜,這裡會把啟動流程分成兩篇來介紹,希望能夠描述清楚。 我把啟動流程劃分成兩部分:cycle核心結構體初始化、master/worker程
CTF菜鳥學習筆記之初始CTF
大一下學期,有幸加入HNUST的網路攻防小組。同時也明白了網路攻防的其中一種形式就是-----CTF比賽。對於我這種菜鳥來說是一種全新的經歷,雖然有些陌生,但並不妨礙我的用心學習,刻苦鑽研。從實戰出發,以戰代練,不斷儲備自己的知識,彌補自身的缺點。
菜鳥學習nginx之事件模組epoll(1)
上一篇介紹核心事件模組,本篇介紹事件模組ngx_epoll_module。Nginx在linux環境下采用epoll網路模型,對於epoll網路型不瞭解的可自行百度查詢,本篇不在闡述。 一、問題 本篇要澄清以下幾個問題: 1、當客戶端發起TCP連線後,事件模組是如何管理新連線?
菜鳥學習nginx之核心模組ngx_events_module
既然Nginx是HTTP服務端軟體,那麼必然離不開網路。今天就介紹Nginx高效能網路是如何實現的。 一、核心模組-ngx_events_module (校長) 上一篇中介紹了Nginx模組抽象,今天深入探討一下ngx_event_module事件模組。 1.1、模組定義 /**
菜鳥學習nginx之模組定義
今天開始介紹Nginx框架相關內容。 Nginx將所有功能進行模組化區分,按照功能統一編排,例如:事件模組,HTTP模組,郵箱模組,配置檔案模組等。對於複雜模組,又支援子模組定義,例如HTTP模組中有ngx_http_header_filter_module等。Nginx為這些模組都進行統一
菜鳥學習Nginx之ngx_array_t
在上一篇介紹了ngx_list_t,本篇介紹一下ngx_array_t,其實有了上一篇的基礎,在介紹ngx_array_t就比較簡單了。 一、資料結構 在資料結構上與ngx_list_t有一點點重複,如下所示: typedef struct { void *el
菜鳥學習Nginx之ngx_list_t
上一篇介紹的是ngx_buf_t,本篇介紹ngx_list_t,幾乎在Nginx中無處不在,出現頻率非常之高。 Nginx中ngx_list_t在名字是連結串列的含義,但是實際可以理解成是陣列形式單鏈表,比一般的連結串列要複雜一些,而ngx_queue_t是我們常說的雙向連結串列。這一點需要
菜鳥學習nginx之HTTP body接收(3)
上一篇介紹了,Nginx是如何接收body主體流程,但是我們仍然沒有了解到,Nginx是如何儲存body的?也就是第一篇中提到的問題。本篇主要分析ngx_http_request_body_filter函式,該函式會幫助我們解決。 一、ngx_http_request_body_t結構體
菜鳥學習nginx之HTTP body接收(2)
上一篇介紹Nginx是如何丟棄body,雖然是丟棄body但是仍然需要乖乖的從socket緩衝區中讀取報文才行。本篇將介紹實際接收流程。 一、概要 接收流程是比較複雜的,主要涉及到兩個方面考慮:body過長如何儲存以及一次接收不完body應該如何設定下次接收。Nginx採用如下方式解決上
菜鳥學習nginx之HTTP body接收(1)
上一篇介紹了Nginx是如何處理HTTP請求的,其實對於一個真正的HTTP請求,往往是有body的,只有處理完body才算真正處理完該請求。 對於HTTP body來說一般處理有兩種方式,要麼是丟棄body,要麼是接收body。對於接收body面臨比較大的挑戰,因為body是不定長,我們無法
菜鳥學習nginx之HTTP請求處理(1)
上一篇主要介紹Nginx是如何處理HTTP Header。由於HTTP請求處理這部分程式碼是Nginx核心內容,打算用兩篇文章深入介紹。本篇先介紹HTTP處理的11個階段。 一、HTTP處理11階段 1.1、為什麼要有11階段? 這個得從Nginx設計出發。首先Nginx是單執行緒且
菜鳥學習nginx之接收HTTP Header
上一篇介紹了《菜鳥學習nginx之接收HTTP請求行》,本篇介紹Nginx接收HTTP Header處理流程。 一、HTTP Header處理流程 處理Header與上一篇處理HTTP請求行很類似,比較容易理解 1.1、流程圖 1.2、程式碼 /** * 處理HTTP
菜鳥學習nginx之接收HTTP請求行
上一篇介紹了HTTP會話建立流程,本篇介紹接收HTTP Header流程。由於Nginx是完全非同步的,這對編寫HTTP框架提出比較高的要求,因此Nginx在實現HTTP框架時定義出11個階段。後續章節會詳細介紹該11階段。本篇介紹的接收HTTP Header請求在HTTP框架中是邏輯比較簡單。