[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sup-devel] [PATCH] xapian: add boolean terms with zero wdf



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