Apologies if this info is already somewhere, but google cant find it
(: I am assuming the following code is completely thread safe:
// Called from a servlet when a user action results in the index
needing to be updated
public static void rebuildIndex() {
FSDirectory dir = new NIOFSDirectory(new
File(Configuration.getAttachmentFolder()), null);
IndexWriter w = new IndexWriter(dir, analyzer,
IndexWriter.MaxFieldLength.UNLIMITED);
.... build index ...
w.optimize();
w.commit();
w.close();
}
The following code is called from the search servlet:
// Called by the search servlet
public void search() {
FSDirectory dir = new NIOFSDirectory(new
File(Configuration.getAttachmentFolder()), null);
IndexReader indexReader = IndexReader.open(dir,true);
IndexSearcher searcher = new IndexSearcher(indexReader);
.... do the search ...
}
I am trying to work out the best/correct way to improve upon this:
1) Should the "FSDirectory dir" object be shared as some sort of
static variable?
2) Should the "IndexSearcher searcher" or the "IndexReader
indexReader" objects be stored as a static variable, and then simply
replaced when the index is rebuilt?
Thanks,
Jacob
____________________________________
Information Technology Services,
The University of Melbourne
Email: jrho...@unimelb.edu.au
Phone: +61 3 8344 2884
Mobile: +61 4 1095 7575