建立索引物件後,如:
indexwriter indexwriter = new indexwriter(indexdir, new standardanalyzer (),true);
緊跟著要執行:
indexwriter.setcompoundfile(true);
true:
在建立索引時,會合併多個segments 檔案到乙個.cfs檔案中.此方式有助於減少索引檔案數量.
如果lucene的索引目錄下出現了很多檔案, 肯定是有問題的. 幾個方面.首先lucene在執行寫操作時, 會先在目錄下寫如乙個write.lock的檔案鎖定這個目錄,以避免別的索引再操作這個路徑. 否則那樣肯定會亂. 鎖定之後, 開始寫索引, 寫索引時lucene建了幾個或者幾十個臨時片段檔案, 都似乎又短又亂的字元.cfs的檔案. 當索引建立完畢後,沒有執行 indexwriter.optimize();方法, 他就不會合併那些亂七八糟的檔案. 所以,索引建完後, 一定要執行 上面的優化方法, 保持目錄下保留3個檔案即可. 也就是很多臨時檔案會合併到乙個檔案中去. 切不可大意刪除. 但當資料很多時, 另行考慮策略.
設計函式時,要考慮的因素
在設計函式時,要考慮很多因素。1.讓每個函式只做一件事情並把這件事情做好。軟體不可避免地要修改,通過結合使用大量簡短的函式,可讓軟體更容易修改。這還有助於測試各個函式以及整個軟體。2.維護。在團隊合作開發中,你編寫的函式易於閱讀和理解嗎?如果不是這樣的,就說明它過於複雜或必須新增注釋。別忘了,你可能...
redis學習 快取設計中要提前考慮的事情
toc toc 本系列文章整理摘抄自 維護成本 基於記憶體的快取不可能將所有的資料都做快取,一般針對的都是熱點資料。熱點資料具有時效性,過了一定時間將成為非熱點資料。所以,快取資料通常具有生命時長,到達指定的時間後,將被更新或者刪除。熟悉快取的常用更新策略,才能針對業務場景做出合理的選擇。通常快取量...
堆 這是要搞事情啊 建立
interesting!堆 簡單的說就是一棵完全二叉樹的先序,滿足任意父結點大於子結點的叫大根堆,反之則是小根堆。建立 建立 小根堆 演算法 簡單粗略加通俗 迴圈以下步驟 把此數 a i 塞 到堆尾,然後不停的和它父結點 a i 2 比較,小就換。給乙個硬模擬的 void put int k 其實不...