On 6/7/05, Chris D <[EMAIL PROTECTED]> wrote:
> Hi list,
> 
> I've been trying to use lucene to index documents that change
> occasionally with fields that change frequently. When I add the
> contents of the file they are removed when I try to delete and readd
> the document. I and am using something like the following.
> 
> public void index(String stuff, File f, boolean doContents){
>    Document doc = new Document();
>    writer.close()
>    reader = IndexReader.open(directory);
>    TermDocs td = reader.termDocs(new Term("fileid", fileid));
>    //Load the document into memory and delete the document from the index.
>    if(td.next()){
>       doc = reader.document(tc.doc());
>       reader.delect(new Term("fileid", fileid)); //*******
>    }
>    //We're done deleting so we can move along.
>    reader.close();
>    writer = new IndexWriter(...);
> 
>    doc.removeFields("stuff");
>    doc.add(new Field("stuff", stuff, File.Store.YES, File.Index.TOKENIZED));
>    //More fields...
> 
>    //If the contents need to be readded... Do so.
>    if(doContents){
>       doc.removeFields("contents");
>       doc.add(new Field("contents", new FileReader(f), Field.TermVector.YES));
>       //System.out.println(doc.get("contents"));
>    }
>    writeDoc(doc)
> }
> 
> There are other fields in doc that will stay the same when it updates
> which is why I do the removeFields instead of just deleting the doc
> and replacing it.
> 
> Now if I remove the reader.delete call that's starred the contents get
> added. (Albeit over and over again) If it remains then all of the
> contents go missing in the index. (Verified with Luke and by searching
> for contents:a* etc)
> 
> I figure I'm missing something silly, hopefully someone can help me
> out, I've been fighting with this for a day or two now, with little
> progress, but many more printlns.
> 
> Cheers,
> Chris

What I think is happening is that because "contents" isn't stored,
when I read the document and delete it I delete any of the information
that was held in that fied. Is there a way to retrieve that
information so that it doesn't disappear?

Chris

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

Reply via email to