To improve speed for our application, I'm trying to move our index from the disk to a RAM directory when our database is opened, and move it back to the disk when the database is closed. The code looks something like this:
-----open----- Directory diskDirectory = FSDirectory.getDirectory(indexPath, false); if (keepInRAM) { indexDirectory = new RAMDirectory(); try { IndexWriter ramWriter = new IndexWriter(indexDirectory, analyzer, true); ramWriter.addIndexes(new Directory[] {diskDirectory}); // load into RAM ramWriter.close(); diskDirectory = FSDirectory.getDirectory(indexPath, true); // erase the disk copy indexInRAM = true; } catch (Exception e) { indexInRAM = false; indexDirectory = diskDirectory; } } else { indexInRAM = false; indexDirectory = diskDirectory; } -----open----- -----close----- if (indexInRAM) { try { IndexWriter diskWriter = new IndexWriter(indexPath, analyzer, true); diskWriter.addIndexes(new Directory[] {indexDirectory}); // write out to disk diskWriter.close(); } catch (Exception e) { // ... } } -----close----- There's only one problem--it's not working. I have an index on disk. If I search it when it's on the disk, I get results. If I try to load it into memory, I don't get any results when I search. Similarly, if I add documents to the index while in memory and try to write it to disk, I get an empty index (just the "segments" file) in the index. Code almost identical to this has been posted before to the list, and I don't see where I'm going wrong here. I'd appreciate any help. (I'm using RC4.) Thanks. Avi -- Avi Drissman [EMAIL PROTECTED] Argh! This darn mailserver is trunca -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>