Lucene 四句話理解基本原理與策略

2021-09-13 00:25:04 字數 687 閱讀 2619

lucene實現快速搜尋的策略:

文字鍊錶建立

建立每個詞對應的文字鍊錶,在多條件查詢時,對單詞對應的鍊錶做交並差操作,雖然索引的建立較為複雜,但只需建立一次,便可反覆使用。

分段儲存

早期的全文檢索中,為整個文件集合建立了很大的倒排索引,由於建立索引成本很高,在資料更新頻繁時,無法保證時效性,因此引入了分段儲存。

分段儲存將檔案分為段,有新資料需要建立時新增乙個段,由於段的不可變性,需要刪除時不會真正刪除,而是新增了.del檔案,用來專門儲存需要刪除的資料id,只在文件鍊錶做操作時,才把已經刪除的資料過濾掉。對檔案的更新操作實際上是刪除和新增的組合。

延遲寫

為了提公升效能,當有新增資料時,先寫入記憶體中,此時只有寫許可權,沒有讀許可權,隨後生成乙個提交點,批量寫入磁碟中,此時只有讀許可權,沒有寫許可權,因此從嚴格意義上來說,lucene屬於準實時的搜尋引擎。

段合併

分段能夠提高效率,但隨著時間增加,段會越來越多,在索引中會存在大量段,不僅會消耗伺服器資源,還會影響效能,因此存在段合併策略。為了控制索引段的數量,需要定期進行段合併,並避免合併較大的段引起資源浪費。主要思路是:根據段的大小先將段分組,再將屬於同一組的段合併,但在段的大小達到一定規模。或段中資料量達到一定條數時,不再進行合併。

受人歡迎的四句話

自古就有 一言興邦,一言喪邦 的明訓,講話確實是一門藝術。如何說話才能受人歡迎?一 為受窘的人說一句解圍的話。助人不只是金錢 勞力 時間上的付出,說話也可以幫助別人。例如,有些人處在尷尬得不知如何 的窘境時,你及時說出一句幫他解圍的話,也是助人的一種。二 為沮喪的人說一句鼓勵的話。西諺雲 言語賦予我...

受人歡迎的四句話

自古就有 一言興邦,一言喪邦 的明訓,講話確實是一門藝術。如何說話才能受人歡迎?一 為受窘的人說一句解圍的話。助人不只是金錢 勞力 時間上的付出,說話也可以幫助別人。例如,有些人處在尷尬得不知如何 的窘境時,你及時說出一句幫他解圍的話,也是助人的一種。二 為沮喪的人說一句鼓勵的話。西諺雲 言語賦予我...

四句話解決const賦值問題

有修飾自己的const就不能再被賦值,且一定要初始化 reference同樣 等號右邊修飾自己的const在賦值時會被忽略 指標的型別有const type 不能用指標修改所指內容 和 type 可以 其中 type型別的指標可以賦值給const type型別,因為這樣做相容,反過來就不行。想想也是...