上次提到如何建立索引.查询索引,下面主要是说下lucene2.2.0更新索引.
我个人查了下资源,lucene是没有更新索引这个的功能的,但是可以增加,删除.所以我们可以这样去做,先把它删除,然后增加,这样也可以达到我们要的效果.
Directory directory = FSDirectory.getDirectory("d:\\index/sellindex", false);
for(int i=0;i<li.length;i++){
IndexReader reader = IndexReader.open(directory);
IndexReader.unlock(directory);
Term term = new Term("vcsid",li[i]);
reader.deleteDocuments(term);
reader.close();
directory.close();
这是的vcsid必须被索引进去,否则不能删除,建索引的时候设成Field.Index.TOKENIZED,就可以了.
String indexDir = "d:\\index/sellindex";
boolean indexExist = indexExist(indexDir);
if (indexExist) {
writer = new IndexWriter(indexDir, new StandardAnalyzer(),
false);
} else {
writer = new IndexWriter(indexDir, new StandardAnalyzer(), true);
}
public static boolean indexExist(String indexDir) {
return IndexReader.indexExists(indexDir);
}
这上面表示如果false的就重新建,而true就是追加,我在项目是这样做的,索引建完后,把一个字段的属性改成1,这样表示已经建,如果对这条记录操作的话,把这条记录索引删除,然后,把一个字段的属性改成2,这样,第二建的时候,我查询数据的时候只要查字段的属性==2的,这样就被索引进来了.,不知道大家明白没有....
青菜猫(孙宇)
posted on 2007-10-24 21:38
青菜猫(孙宇) 阅读(2423)
评论(7) 编辑 收藏 所属分类:
搜索