青菜猫lucene2.2.0全文检索更新

青菜猫lucene2.2.0全文检索更新

上次提到如何建立索引.查询索引,下面主要是说下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的,这样就被索引进来了.,不知道大家明白没有....
                           
                                                                                                                                                                               青菜猫(孙宇)

你可能感兴趣的:(青菜猫lucene2.2.0全文检索更新)