You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Antony Bowesman <ad...@teamware.com> on 2009/05/05 13:42:11 UTC

Which is more efficient

Just wondered which was more efficient under the hood

  for (int i = 0; i < size; i++)
      terms[i] = new Term("id", doc_key[i]);

This

  writer.deleteDocuments(terms);
  for (int i = 0; i < size; i++)
      writer.addDocument(doc[i]);

Or this

  for (int i = 0; i < size; i++)
      writer.updateDocument(terms[i], doc[i]);


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Re: Which is more efficient

Posted by Michael McCandless <lu...@mikemccandless.com>.
They should be very nearly the same.  Under the hood, when you call
updateDocument, IndexWriter buffers up the deleted terms, and flushes
them periodically.

Mike

On Tue, May 5, 2009 at 7:42 AM, Antony Bowesman <ad...@teamware.com> wrote:
> Just wondered which was more efficient under the hood
>
>  for (int i = 0; i < size; i++)
>     terms[i] = new Term("id", doc_key[i]);
>
> This
>
>  writer.deleteDocuments(terms);
>  for (int i = 0; i < size; i++)
>     writer.addDocument(doc[i]);
>
> Or this
>
>  for (int i = 0; i < size; i++)
>     writer.updateDocument(terms[i], doc[i]);
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org