這個東西自己實際上也就做了幾天,很多東西還不完善,比如自己說的。
要用quartz結合起來也沒做。自己太懶了。
一下是其一些重要代碼
private void creatDoc() throws CorruptIndexException, IOException{
DataInput di = new DataInput();
List<Hibernate> l = di.select();
for(Hibernate h : l){
Document doc = new Document();
// 下面是關鍵點
doc.add(new Field("id",String.valueOf(h.getId()),Field.Store.YES,Field.Index.UN_TOKENIZED));
doc.add(new Field("name",String.valueOf(h.getName()),Field.Store.YES,Field.Index.TOKENIZED,Field.TermVector.YES));
doc.add(new Field("context",String.valueOf(h.getContext()),Field.Store.NO,Field.Index.TOKENIZED,Field.TermVector.YES));
doc.add(new Field("time",String.valueOf(h.getTime()),Field.Store.YES,Field.Index.UN_TOKENIZED));
writer.addDocument(doc);
}
}
private IndexWriter writer = null;
@SuppressWarnings("deprecation")
public LuceneIndex(){
try {
writer = new IndexWriter(Contants.INDEX_STORE_PATH,new ChineseAnalyzer(),true);
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (LockObtainFailedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
此2點為最重要的,一是中文切詞的問題。
第二個則是索引建立時的Field的確定。