上次提到如何建立索引.查詢索引,下面主要是說下lucene2.2.0更新索引.
我個人查了下資源,lucene是沒有更新索引這個的功能的,但是可以增加,刪除.所以我們可以這樣去做,先把它刪除,然后增加,這樣也可以達(dá)到我們要的效果.
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();
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,這樣表示已經(jīng)建,如果對這條記錄操作的話,把這條記錄索引刪除,然后,把一個字段的屬性改成2,這樣,第二建的時候,我查詢數(shù)據(jù)的時候只要查字段的屬性==2的,這樣就被索引進(jìn)來了.,不知道大家明白沒有....
青菜貓(孫宇)