这个东西自己实际上也就做了几天,很多东西还不完善,比如自己说的。
要用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的确定。