Ok, your directory exists.

if ((indexFile = new File(indexDir)).exists() && indexFile.isDirectory())
{
exists = false;
System.out.println("Index does not exist");
}

now is  exists == false

at this point:

writer = new IndexWriter(indexFile, new StandardAnalyzer(), exists);

exists is still false. That means that your are trying to update an existing 
index. but there is no index inside your index. I think exists must be true so 
that a new index is created inside your directory!?

change the exists from false to true and everything should work fine ...


bib_lucene bib wrote:

This is a new directory, created just before this step.
I am uploading files to this directory. The file is getting uploaded fine.
Any ideas?

Muetze303 <[EMAIL PROTECTED]> wrote:
probably the dir exists, but the index inside the dir is broken or not complete and you are trying to use it instead of creating a new one?!

bib_lucene bib wrote:

Hi All

can someone please help me on the error in my web application...

I am using tomcat , the path for index dir is obtained from jsp page using 
application.getRealPath("/")+"download/compName"

I want to index when the file gets uploaded.
I am getting this error...

java.io.FileNotFoundException: C:\tomcat\webapps\myApp\download\compName\segmen
s (The system cannot find the file specified)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.(RandomAccessFile.java:204)
at org.apache.lucene.store.FSInputStream$Descriptor.(FSDirectory.
ava:376)
at org.apache.lucene.store.FSInputStream.(FSDirectory.java:405)
at org.apache.lucene.store.FSDirectory.openFile(FSDirectory.java:268)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:40)
at org.apache.lucene.index.IndexWriter$1.doBody(IndexWriter.java:233)
at org.apache.lucene.store.Lock$With.run(Lock.java:109)
at org.apache.lucene.index.IndexWriter.(IndexWriter.java:228)
at org.apache.lucene.index.IndexWriter.(IndexWriter.java:193)
at com.rs.upload.FileIndexer.indexDocument(FileIndexer.java:43)


This directory C:\tomcat\webapps\myApp\download\compName\ exist in the file 
system.

Here is the program I wrote /*
* Created on Jul 6, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.rs.upload;
import java.util.Hashtable;
import java.util.Iterator;
import java.io.*;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.analysis.standard.*;
import org.apache.lucene.document.*;
/**
* @author
*
* This will index the documents as and when documents are uploaded.
* */
public class FileIndexer {

public static void indexDocument(String fileName, Hashtable fields, String 
indexDir) throws IOException{

// Find if the index already exists
boolean exists = true;
File indexFile = null;
if ((indexFile = new File(indexDir)).exists() && indexFile.isDirectory())
{
exists = false;
System.out.println("Index does not exist");
}
else {
exists = true;
System.out.println("Index does exist");
}
System.out.println("Index Directory:"+indexDir);
IndexWriter writer = null;
try {
writer = new IndexWriter(indexFile, new StandardAnalyzer(), exists);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
writer.mergeFactor = 20;

File candidateFile = new File(fileName);
indexFile(writer,candidateFile,fields);
}

private static void indexFile(IndexWriter writer, File f, Hashtable fields) 
throws IOException{

if( f.isHidden() || !f.exists() || !f.canRead()){
return;
}

System.out.println("Indexing file :"+ f.getCanonicalPath());
Document doc = new Document();
doc.add(Field.Text("contents", new FileReader(f)));
doc.add(Field.Keyword("filename",f.getCanonicalPath()));

Iterator it = fields.keySet().iterator();
String element = "";
while (it.hasNext()) {
element = (String)it.next();
doc.add(Field.Keyword(element,(String)fields.get(element)));
}
writer.addDocument(doc);
}
}



---------------------------------
Sell on Yahoo! Auctions - No fees. Bid on great items.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


                
---------------------------------
Sell on Yahoo! Auctions  - No fees. Bid on great items.

Reply via email to