上次提到如何建立索引.查詢索引,下面主要是說下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
青菜貓(孫宇) 閱讀(2430)
評論(7) 編輯 收藏 所屬分類:
搜索