Lucene2 1的新變化

2021-08-22 14:08:38 字數 1395 閱讀 7603

1.9 到 2.0 的改動不是很多,主要是廢棄了一些 api , 2.0 起了乙個過渡的作用。

2.1 是在 2.0 基礎上做了很多的改進,提公升了效能,修復了一些 bug 等。

lucene2.1 在索引的格式上做了一些改進,所以舊版本的 lucene 是無法訪問 2.1 版的索引檔案。但是 2.1 版本的可以讀寫舊版本的索引檔案。保持向下的相容性。這點需要我們在使用時注意。

下面簡單的列出一些新的特性:

1. 's' 和 't' 從預設的 stopwords 中移掉了。但是依然還有 'a' 也可以會有同樣的問題,所以分詞需要針對自己的應用進行自定義。

2. 更新了 standardanalyzer 中的針對 cjk 的 unicode **範圍。用處不大,因為我們中文需要自己開發分詞。

3. 允許在 queryparser 的最前面使用萬用字元 (*, ?) ,之前是不允許的。這個比較有意義,可以實現一些模糊搜尋。

4. queryparser 預設使用 constantscorerangequery 執行範圍查詢。增加了 useoldrangequery 屬性允許在需要的情況下使用舊的 rangequery

5. 對於 wildcardquery ,如果乙個 term 不包含任何的 ? 或者 * ,之前會丟擲異常,現在會執行乙個 termquery 。

6. 去掉了 deprecated 的 doc.fields() 方法和 enumeration

7. write lock 現在預設的位置是索引的目錄,簡單命名為 write.lock

8. 新的 fieldselector api ,相關的 indexreader 和實現都發生了變化。新的 fieldable 介面被用作欄位的延遲載入上。

9. 使用 multifieldqueryparser 的時候可以為不同的 field 指定不同的 boosts

[b]10. 新的方法 indexwriter.addindexesnooptimize() 在新新增乙個新的 segments 的時候,只進行合併,不進行優化。[/b]

11. queryparser 允許在引號和短語中使用反斜線

[b]12. 增加了方法 ramdirectory.sizeinbytes(), indexwriter.ramsizeinbytes() 和 indexwriter.flushramsegments() ,允許應用程式控制索引時快取文件對記憶體的使用,這些蠻有用的,可以用於監控索引的過程。[/b]

[b]13. queryparser 解析 *:* 為匹配所有的內容[/b]

14. 可以通過命令列在已經存在的索引檔案中修改和刪除 field

[b]15. indexwriter 增加了方法來高效得更新 documents 。增加 indexwriter.flush() 方法將記憶體的內容重新整理到檔案系統。[/b]

大兵 2007-3-22

Lucene2 1的新變化

1.9 到 2.0 的改動不是很多,主要是廢棄了一些 api 2.0 起了乙個過渡的作用。2.1 是在 2.0 基礎上做了很多的改進,提公升了效能,修復了一些 bug 等。lucene2.1 在索引的格式上做了一些改進,所以舊版本的 lucene 是無法訪問 2.1 版的索引檔案。但是 2.1 版本...

微軟office的新變化

北京時間3月29日訊息,據國外 報道,微軟將於今年5月發布office 2010。但由於網際網路應用的逐漸興起,office 2010將會面臨著來自於谷歌的挑戰。微軟已經消滅了office辦公軟體的絕大部分競爭對手。但是來自於谷歌免費或廉價的基於網際網路的辦公軟體,正在對微軟盈利豐厚的office部...

Qt5的新變化

原 qtextcodec setcodecfortr qtextcodec setcodecforcstrings qtextcodec setcodecforlocale 儘管之前零零散散寫過一點這方面的內容,比如 但是,敢死隊員還是一批一批的 讓人少多有些無奈 在國內,之所以用很多人用這3行 是...