當(dāng)前位置:
首頁 >
lucene修改索引——(六)
發(fā)布時間:2025/5/22
53
豆豆
生活随笔
收集整理的這篇文章主要介紹了
lucene修改索引——(六)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原理:
修改的原理是先刪除,后增加一個,這也是常用的一種修改的方式。
刪除的文檔的id不會被新增加的文檔占用,類似于mysql的自增,當(dāng)刪除一個id=2時,以后id=2就是空著的,不會上來一個把2給占用。再添加是往后面增加。
?
代碼:
刪除fileName 為 javaweb的索引,然后新增加一個索引,索引的term是fileN與fileC,值分別是"測試文件名"與"測試文件內(nèi)容"。
原來的索引結(jié)構(gòu):
?
?
執(zhí)行代碼:
// public IndexWriter getIndexWriter() throws Exception{// 第一步:創(chuàng)建一個java工程,并導(dǎo)入jar包。// 第二步:創(chuàng)建一個indexwriter對象。Directory directory = FSDirectory.open(new File("E:\\lucene&solr\\index"));// Directory directory = new RAMDirectory();//保存索引到內(nèi)存中 (內(nèi)存索引庫)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", "測試文件內(nèi)容",Store.YES));indexWriter.updateDocument(new Term("fileName","javaweb"), doc, new IKAnalyzer());indexWriter.close();}?
?
執(zhí)行后的結(jié)構(gòu):
八個文檔,原來有十個,刪除三個增加一個變?yōu)?個。
?
?
查看文檔結(jié)構(gòu):(刪除后其文檔ID仍然保留著,因此是是一個)
?
總結(jié)
以上是生活随笔為你收集整理的lucene修改索引——(六)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。