技术开发 频道

lucene2.2.0全文检索更新

【IT168技术文档】提到如何建立索引.查询索引,下面主要是说下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的,这样就被索引进来了.,不知道大家明白没有....
原文地址

0
相关文章