: Ladies and Gentlemen:
: Below is an exception and the source code that generates it:
first off -- the source code you've posted does not match the exception
you posted: the exception comes from something called "results.jsp" which
attempts to open an IndexSearcher; the code you posted is for a class
named "Parser" that appears to be a command line app (with a "main"
function) that attempts to build an index (at first glance, i only see it
attempting to add one document)
I suspect the cause of your problem is that you are never calling the
"close()" method on your IndexWriter, so nothing is ever getting written
to disk ... this is just a guess however.
: ERROR opening the Index - contact sysadmin!
:
: Error message: no segments* file found in
: org.apache.lucene.store.FSDirectory@/home/hdiwan/public_html/Q4D: files:
:
: Stack Trace follows...
:
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:587)
:
org.apache.lucene.index.DirectoryIndexReader.open(DirectoryIndexReader.java:63)
: org.apache.lucene.index.IndexReader.open(IndexReader.java:209)
: org.apache.lucene.index.IndexReader.open(IndexReader.java:173)
: org.apache.lucene.search.IndexSearcher.(IndexSearcher.java:48)
: org.apache.jsp.results_jsp._jspService(results_jsp.java:130)
: org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
: javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
:
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
: org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
: org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
: javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
:
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
:
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
:
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
:
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
: org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
: org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
:
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
: org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
: org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
:
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
: org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
: java.lang.Thread.run(Thread.java:619)
:
: -- Source code follows --
: import java.io.File;
: import java.io.FilenameFilter;
: import java.io.IOException;
: import java.net.URLDecoder;
: import java.util.Collection;
: import java.util.Collections;
: import java.util.Comparator;
: import java.util.Date;
: import java.util.HashSet;
: import java.util.Vector;
: import org.apache.lucene.analysis.WhitespaceAnalyzer;
: import org.apache.lucene.document.DateTools;
: import org.apache.lucene.document.Document;
: import org.apache.lucene.document.Field;
: import org.apache.lucene.index.CorruptIndexException;
: import org.apache.lucene.index.IndexWriter;
: import org.apache.lucene.store.Directory;
: import org.apache.lucene.store.LockObtainFailedException;
: import org.apache.lucene.store.FSDirectory;
: public class Parser implements Runnable,Comparator {
: String path;
: public Parser(String string) {
: path = string;
: }
: public void run() {
: IndexWriter writer = null;
: Directory directory = null;
: try {
: directory = FSDirectory.getDirectory(this.path);
: } catch (IOException e) {
: System.err.println(e.getStackTrace());
: }
: try {
: writer = new IndexWriter(directory,new
: WhitespaceAnalyzer(), true);
: } catch (CorruptIndexException e) {
: e.printStackTrace();
: } catch (LockObtainFailedException e) {
: e.printStackTrace();
: } catch (IOException e) {
: e.printStackTrace();
: }
: Document doc = new Document();
: File image = null;
: File file = null;
: for (File f : this.listFiles(new File(path))) {
: if (f.getAbsolutePath().endsWith("xml") ||
: f.getAbsolutePath().endsWith("q4d")) {
: System.err.println("Q4D file found!");
: file = f;
: } else {
: image = f;
: }
: if ((f != null) && (image != null)) break;
: }
: Date lastModified = new Date(file.lastModified());
: System.err.println("Found a file and its corresponding
: image!");
: String imageName = image.getName();
: String filename = file.getName();
: String lastModifiedDownToSecond =
: DateTools.dateToString(lastModified, DateTools.Resolution.SECOND);
: System.err.println("the time the file was last modified
: was "+lastModifiedDownToSecond);
: String author = System.getProperty("author");
: String source = System.getProperty("source");
: String url = System.getProperty("url");
: String description =
: URLDecoder.decode(System.getProperty("description", "UTF-8"));
: System.err.println("about to create fields");
: doc.add(new Field("author", author, Field.Store.YES,
: Field.Index.TOKENIZED));
: doc.add(new Field("source", source, Field.Store.YES,
: Field.Index.TOKENIZED));
: doc.add(new Field("name", filename, Field.Store.YES,
: Field.Index.NO));
: doc.add(new Field("image", imageName, Field.Store.YES,
: Field.Index.NO));
: doc.add(new Field("date", lastModifiedDownToSecond,
: Field.Store.YES, Field.Index.NO));
: doc.add(new Field("url", url, Field.Store.YES,
: Field.Index.NO));
: if (description != null) {
: doc.add(new Field("description", description,
: Field.Store.YES, Field.Index.TOKENIZED));
: } else {
: doc.add(new Field("description", "none",
: Field.Store.YES, Field.Index.TOKENIZED));
: }
: doc.add(new Field("all",
: author+lastModifiedDownToSecond+source+imageName+description+url,
: Field.Store.YES, Field.Index.TOKENIZED));
: try {
: writer.addDocument(doc);
: } catch (CorruptIndexException e) {
: e.printStackTrace();
: } catch (IOException e) {
: e.printStackTrace();
: }
: try {
: writer.optimize();
: } catch (CorruptIndexException e) {
: e.printStackTrace();
: } catch (IOException e) {
: e.printStackTrace();
: }
: }
: private Collection<File> listFiles(
: File directory)
: {
: Vector<File> files = new Vector<File>();
: // Get files / directories in the directory
: File[] entries = directory.listFiles();
: // Go over entries
: for (File entry : entries)
: {
: files.add(entry);
: }
: // Return collection of files, sorted by date
: Collections.sort(files, this);
: for (File entry : files) {
: System.err.println(entry+"
: "+entry.lastModified());
: }
: return files;
: }
: public int compare(Object o1, Object o2) {
: File f1 = (File)o1;
: File f2 = (File)o2;
: Date d1 = new Date(f1.lastModified());
: Date d2 = new Date(f2.lastModified());
: return d1.compareTo(d2);
: }
: public static void main (String []args) {
: Parser obj = new Parser(args[0]);
: try {
: obj.run();
: } finally { // in case it crashes, I don't want a locked
: repository!
: File f = new
: File(args[0]+File.separator+"write.lock");
: f.delete();
: }
: }
: }
: == end ==
: The code is supposed to add a document to the repository, as you can see from
: the first 19 lines, it generates an exception, the backtrace is also included.
: I've been struggling with this problem all day today (Thursday) without making
: headway. Hence, I turn to your good guidance. I'm sure you won't disappoint.
: Many thanks! -- H
:
: ---------------------------------------------------------------------
: To unsubscribe, e-mail: [EMAIL PROTECTED]
: For additional commands, e-mail: [EMAIL PROTECTED]
:
-Hoss
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]