Xapian's Flint backend stores the document length in every posting, so if the document length is changed (by adding a label, for example), every posting entry needs to be rewritten. This basically nullifies the performance improvement from the Xapian bug 250 fix. We can prevent this by adding these terms with 0 within-document-frequency so that their addition or removal doesn't change the document length.
This is the analog to notmuch commit ccf2e0cc. --- lib/sup/xapian_index.rb | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/lib/sup/xapian_index.rb b/lib/sup/xapian_index.rb index c81dca4..99d7c0e 100644 --- a/lib/sup/xapian_index.rb +++ b/lib/sup/xapian_index.rb @@ -590,7 +590,7 @@ class Xapian::Document alias old_add_term add_term def add_term term if term.length <= Redwood::XapianIndex::MAX_TERM_LENGTH - old_add_term term + old_add_term term, 0 else warn "dropping excessively long term #{term}" end -- 1.6.3.3 _______________________________________________ Sup-devel mailing list Sup-devel@rubyforge.org http://rubyforge.org/mailman/listinfo/sup-devel