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]

Reply via email to