20 jun 2008 kl. 18.12 skrev Vinicius Carvalho:
Hello there! I trying to query for a specific document on a efficient way.
Hi Vinicius,
termDocs = reader.termDocs(term); while(termDocs.next()){ int index = termDocs.doc(); if(reader.document(index).get("id").equals(id)){ reader.deleteDocument(index); } }
Iterating documents and string comparing stored values is not very efficient. Use a query instead, something like this:
BooleanQuery query = new BooleanQuery(); query.add(new TermQuery(term), Occurs.MUST); query.add(new TermQuery(new Term("id", id), Occurs.MUST); searcher.search(query, new HitCollector() { public void collect(int doc, float score) { reader.deleteDocument(doc); } }); karl --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]