Hello. I'm pretty new to Lucene. I've had good luck so far, but o bug
just cropped up in the code I use to make indexes. I'm using rc4 and
(sorry) did not change the code; I just noticed my indexes failing...
anyway, here's the relevant segment...I know that the file path is
valid, and files _are_ getting created updated there -- I checked the
timestamps.
Also, I'm confused about the create boolean in the IndexWriter
constructor -- should it be true for false when updating existing
entries in an
existing index.
public void makeIndex() throws IOException, NestedException {
this.logDebug("Creating index in " + this.getIndexFileName());
IndexWriter writer = new
IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false); //I
was using 'true' changed to false
//for debugging, to no effect
// <cut>full text below, for those interested</cut>
try {
for (int i=0; i < projects.length; i++) {
this.logDebug("Adding project " +
projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
index");
Document d = this.makeProjectDocument(projects[i]);
writer.addDocument(d);
this.logDebug("Done adding project " +
projects[i].getId() + " to index.");
}
this.logDebug("Done processing vsp information for lucene
search index, about to finalize index.");
} catch (RuntimeException re) {
this.logError("Unexpected error writing index!", re);
throw(re);
} finally {
writer.optimize();
this.logDebug("index optimized...closing");
writer.close(); //*** THIS IS WHERE THE EXCEPTION GETS THROWN
this.logDebug("Index closed; done writing lucene index.");
}
}
I looked at the the IndexWriter.close() method, and it seems like
ramDirectory, directory or writeLock need to be null o make this happen.
Anyway, any advice would be greatly appreciated.
best
eric
-- full method listing
public void makeIndex() throws IOException, NestedException {
this.logDebug("Creating index in " + this.getIndexFileName());
IndexWriter writer = new
IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false);
//get projects/activities, make docs for each...
Project[] projects = null;
try {
projects = this.getProjectService().getProjectsById(null);
} catch (Exception e) {
String msg = "Can't get projects for indexing, aborting";
this.logError(msg,e);
throw new NestedException(msg,e);
} finally {
writer.close();
}
try {
for (int i=0; i < projects.length; i++) {
//Project project = projects[i];
this.logDebug("Adding project " +
projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
index");
Document d = this.makeProjectDocument(projects[i]);
writer.addDocument(d);
this.logDebug("Done adding project " +
projects[i].getId() + " to index.");
}
this.logDebug("Done processing vsp information for lucene
search index, about to finalize index.");
} catch (RuntimeException re) {
this.logError("Unexpected error writing index!", re);
throw(re);
} finally {
writer.optimize();
this.logDebug("index optimized...closing");
writer.close();
this.logDebug("Index closed; done writing lucene index.");
}
}
--
To unsubscribe, e-mail: <mailto:lucene-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:lucene-user-help@jakarta.apache.org>
just cropped up in the code I use to make indexes. I'm using rc4 and
(sorry) did not change the code; I just noticed my indexes failing...
anyway, here's the relevant segment...I know that the file path is
valid, and files _are_ getting created updated there -- I checked the
timestamps.
Also, I'm confused about the create boolean in the IndexWriter
constructor -- should it be true for false when updating existing
entries in an
existing index.
public void makeIndex() throws IOException, NestedException {
this.logDebug("Creating index in " + this.getIndexFileName());
IndexWriter writer = new
IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false); //I
was using 'true' changed to false
//for debugging, to no effect
// <cut>full text below, for those interested</cut>
try {
for (int i=0; i < projects.length; i++) {
this.logDebug("Adding project " +
projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
index");
Document d = this.makeProjectDocument(projects[i]);
writer.addDocument(d);
this.logDebug("Done adding project " +
projects[i].getId() + " to index.");
}
this.logDebug("Done processing vsp information for lucene
search index, about to finalize index.");
} catch (RuntimeException re) {
this.logError("Unexpected error writing index!", re);
throw(re);
} finally {
writer.optimize();
this.logDebug("index optimized...closing");
writer.close(); //*** THIS IS WHERE THE EXCEPTION GETS THROWN
this.logDebug("Index closed; done writing lucene index.");
}
}
I looked at the the IndexWriter.close() method, and it seems like
ramDirectory, directory or writeLock need to be null o make this happen.
Anyway, any advice would be greatly appreciated.
best
eric
-- full method listing
public void makeIndex() throws IOException, NestedException {
this.logDebug("Creating index in " + this.getIndexFileName());
IndexWriter writer = new
IndexWriter(this.getIndexFileName(),new StandardAnalyzer(), false);
//get projects/activities, make docs for each...
Project[] projects = null;
try {
projects = this.getProjectService().getProjectsById(null);
} catch (Exception e) {
String msg = "Can't get projects for indexing, aborting";
this.logError(msg,e);
throw new NestedException(msg,e);
} finally {
writer.close();
}
try {
for (int i=0; i < projects.length; i++) {
//Project project = projects[i];
this.logDebug("Adding project " +
projects[i].getId() + " [" + projects[i].getDisplayName() + "] to
index");
Document d = this.makeProjectDocument(projects[i]);
writer.addDocument(d);
this.logDebug("Done adding project " +
projects[i].getId() + " to index.");
}
this.logDebug("Done processing vsp information for lucene
search index, about to finalize index.");
} catch (RuntimeException re) {
this.logError("Unexpected error writing index!", re);
throw(re);
} finally {
writer.optimize();
this.logDebug("index optimized...closing");
writer.close();
this.logDebug("Index closed; done writing lucene index.");
}
}
--
To unsubscribe, e-mail: <mailto:lucene-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:lucene-user-help@jakarta.apache.org>