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]