lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sanne Grinovero <sanne.grinov...@gmail.com>
Subject Re: Build RAMDirectory on FSDirectory, and then synchronzing the two
Date Thu, 12 Jan 2012 23:36:34 GMT
Maybe you could explain why you are doing this? Someone could suggest
alternative approaches.

Regards,
Sanne
On Jan 12, 2012 4:02 AM, "dyzc" <1393975679@qq.com> wrote:

> 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.lea@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.lea@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 <1393975679@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"<zhoucheng2008@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-unsubscribe@lucene.apache.org
> >> For additional commands, e-mail: java-user-help@lucene.apache.org
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message