將以前開發的專案中的lucene從1.4.3公升級到2.0,發現編譯就不通過,於是對照新的api將程式做了修改,目前本人遇到的api更改有
1. indexreader類
delete(int id)方法改名為deletedocuemnt(int id), delete(term t) 方法改名為deletedocuments(term t);
getfieldnames()方法現在必須傳入引數了,型別是indexreader.fieldoption,例如
collection c=reader.getfieldnames(indexreader.fieldoption.all);
2. field類
建構函式field(string name,string value,boolean store,boolean index,....)不復存在,變成了更加
field(相應的field.keyword靜態方法也沒有了,必須採用建構函式直接生成例項;string
name,
string
value,
field.store
store,
field.index
index,
field.termvector
termvector)
3. booleanquery
add方法也改了,原有的是add(query q, boolean required, boolean prohibited)現在也更加物件導向了:
add(query q, booleanclause.occur occur);
4.booleanclause
其query屬性不是public的了,需要使用getquery()方法獲取;
4. indexwriter
mergefactor屬性不再是public的了,有了個setmergefactor()方法;
5. datefield
deprecated了,使用datetools;
6.queryparser
parse方法不再是static的了,也就是要先取得queryparser 的例項再呼叫例項的parse()方法。這樣就可以繼承queryparser 寫乙個自己的檢索式解析器了。我寫了乙個來解決做模糊檢索時出現toomanyclauses 異常的問題。主要是利用filter的機制來實現。但實際執行過程中只能解決prefixquery的問題,即title:comput*樣式的檢索式沒有問題(星號在最後),而在做wildcardquery時即檢索式樣式是title:com*er時速度非常慢(資料量4000萬),於是只好在新的解析器中只重寫了getprefixquery()方法。
7. luke
Ubuntu 從15 10公升級到16 04
ubuntu 16.04 lts 代號為 xenial xerus,其最終版於 2016 年 4 月 21 日正式發布,ubuntu16.04 是非常受歡迎的開源作業系統 ubuntu 的第 6 個長期支援版本,其首個 lts 版本發布於 2006 年 6 月。ubuntu 16.04 xenial...
JIRA從6 0 2公升級到7 3 6
備份原有jira的db和安裝檔案,以便回退版本 資料庫備份命令 data mysql bin mysqldump lock tables 0 add drop table u p gzip jira sql.gz jira安裝檔案備份 tar cvzf jira.tar.gz xvdb jira a...
mongodb 從3 0 公升級到3 2
curl k v o mongodb linux x86 64 debian71 3.2.7.tgz 解壓mongodb tar xvzf mongodb linux x86 64 rhel62 3.2.7.tgz 關閉mongod 參考 url 備份舊的bin sudo mv bin bin ba...