IndexWrite的主要作用是针对索引进行创建,加入Document,合并各种索引字段
IndexWrite有三个公有构造函数
public IndexWrite(String path,Analyzer a,boolean create) ;
public IndexWrite(File path,Analyzer a , boolean create) ;
public IndexWrite(Directory d ,Analyzer a ,boolean create);
第一个参数代表索引存放的位置。String是绝对路径,File类型是经过包装的绝对路径,Directory类型是Lucene内部的一种目录表示方式。
第二个参数代表创建索引时所使用的分词器,用分词器对数据源进行相应的处理。
第三个参数是一个布尔型,该参数为true时在由第一个参数所指定的路径处,删除源目录内的所有内容重新构建索引;为false时在已经存在的索引上追加新的Document,通常在第一次构建索引时,可以将其设为true,以后设为false进行索引的不断更新。
Document doc =new Doucment() ;//建立逻辑文件 Field f1=new Field("bookid","20090102",Field.Store.YES,Field.Index.UN_TOKENIZED) ; Field f2=new Field("author","刘云",Field.Store.YES"Field.Index.UN_TOKENIZED") ; /*为逻辑文件添加字段内容,Field.Store.YES表示存储该字段, Field.Index.Un_TOKENIZED表示不对该Field进行分词, 但是要对它进行索引*/ doc.add(f1); doc.add(f2); IndexWrite write=new IndexWrite(INDEX_STORE_PATH,new StandardAnalyzer(),true) ; write.addDocument(doc) ;
write.close() ;