That lies in that my apps add indexes to those in RAM rather than update them. So the size doubled. Seem not related to the OpenMode.CREATE option. ------------------ Original ------------------ From: "Ian Lea"<ian....@gmail.com>; Date: Wed, Jan 11, 2012 05:20 PM To: "java-user"<java-user@lucene.apache.org>;
Subject: Re: Build RAMDirectory on FSDirectory, and then synchronzing the two > I tried IndexWriterConfig.OpenMode CREATE, and the size is doubled. Prove it. -- Ian. > The only way that is effective is the writer's deleteAll() methods. > > On Mon, Jan 9, 2012 at 5:23 AM, Ian Lea <ian....@gmail.com> wrote: > >> If you load an existing disk index into a RAMDirectory, make some >> changes in RAM and call addIndexes to add the contents of the >> RAMDirectory to the original disk index, you are likely to end up with >> duplicate data on disk. Depending of course on what you've done to >> the RAM index. >> >> Sounds you want to call addIndexes using a writer on a new, empty, >> index or overwrite the original. IndexWriterConfig.OpenMode CREATE. >> >> >> -- >> Ian. >> >> >> On Mon, Jan 9, 2012 at 4:29 AM, dyzc <1393975...@qq.com> wrote: >> > I'd better provide a snapshot of my code for people to understand my >> issues: >> > >> > >> > File file=new File("c:/index_files"); >> > FSDirectory fsDir=new FSDirectory(file); >> > RAMDirectory ramDir=new RAMDirectory(fsDir, new >> IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer()); >> > >> > >> > IndexWriter iw = new IndexWriter(ramDir, iwc); >> > >> > >> > ......DO something here with iw (associated with ramDir)..... >> > >> > >> > Now I am trying to synchronize ramDir with fsDir: >> > >> > >> > //close iw prior to synchronization >> > iw.close(); >> > >> > >> > // synchronize RAM with FS >> > IndexWriter writer = new IndexWriter(fsDir, new >> IndexWriterConfig(Version.LUCENE_35, ik)); >> > writer.addIndexes(ramDir); >> > writer.close(); >> > ramDir.close(); >> > >> > >> > >> > Now I end up with duplicate copies of index files in c:/index_files >> > >> > >> > Is there something that I miss here? >> > >> > >> > ------------------ Original ------------------ >> > From: "zhoucheng2008"<zhoucheng2...@gmail.com>; >> > Date: Mon, Jan 9, 2012 12:04 PM >> > To: "java-user"<java-user@lucene.apache.org>; >> > >> > Subject: Build RAMDirectory on FSDirectory, and then synchronzing the >> two >> > >> > >> > Hi, >> > >> > I new a RAMDirectory based upon a FSDirectory. After a few >> modifications, I would like to synchronize the two. >> > >> > >> > Some on the mailing list provided a solution that uses addIndex() >> function. >> > >> > >> > However, the FSDirectory simply combines with the RAMDirectory, and the >> size doubled. >> > >> > >> > How can I do a real synchronization? >> > >> > >> > Thanks >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >> For additional commands, e-mail: java-user-h...@lucene.apache.org >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org