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]