lucene修改索引——(六)
生活随笔
收集整理的這篇文章主要介紹了
lucene修改索引——(六)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原理:
修改的原理是先刪除,后增加一個,這也是常用的一種修改的方式。
刪除的文檔的id不會被新增加的文檔占用,類似于mysql的自增,當刪除一個id=2時,以后id=2就是空著的,不會上來一個把2給占用。再添加是往后面增加。
?
代碼:
刪除fileName 為 javaweb的索引,然后新增加一個索引,索引的term是fileN與fileC,值分別是"測試文件名"與"測試文件內容"。
原來的索引結構:
?
?
執行代碼:
// public IndexWriter getIndexWriter() throws Exception{// 第一步:創建一個java工程,并導入jar包。// 第二步:創建一個indexwriter對象。Directory directory = FSDirectory.open(new File("E:\\lucene&solr\\index"));// Directory directory = new RAMDirectory();//保存索引到內存中 (內存索引庫)Analyzer analyzer = new StandardAnalyzer();// 官方推薦IndexWriterConfig config = new IndexWriterConfig(Version.LATEST, analyzer);return new IndexWriter(directory, config);}?
//修改 @Testpublic void testUpdate() throws Exception {IndexWriter indexWriter = getIndexWriter();Document doc = new Document();doc.add(new TextField("fileN", "測試文件名",Store.YES));doc.add(new TextField("fileC", "測試文件內容",Store.YES));indexWriter.updateDocument(new Term("fileName","javaweb"), doc, new IKAnalyzer());indexWriter.close();}?
?
執行后的結構:
八個文檔,原來有十個,刪除三個增加一個變為8個。
?
?
查看文檔結構:(刪除后其文檔ID仍然保留著,因此是是一個)
?
總結
以上是生活随笔為你收集整理的lucene修改索引——(六)的全部內容,希望文章能夠幫你解決所遇到的問題。