From 545671bec3a6be750f80e58a91acb881e54ba290 Mon Sep 17 00:00:00 2001 From: Bartuccio Antoine Date: Fri, 7 Dec 2018 13:54:40 +0100 Subject: [PATCH] forum: workaround for building index --- core/search_indexes.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/search_indexes.py b/core/search_indexes.py index d765fcf9..dcf8662f 100644 --- a/core/search_indexes.py +++ b/core/search_indexes.py @@ -57,8 +57,18 @@ class UserOnlySignalProcessor(signals.BaseSignalProcessor): models.signals.post_delete.disconnect(self.handle_delete, sender=User) +class BigCharFieldIndex(indexes.CharField): + """ + Workaround to avoid xapian.InvalidArgument: Term too long (> 245) + See https://groups.google.com/forum/#!topic/django-haystack/hRJKcPNPXqw/discussion + """ + + def prepare(self, term): + return super(BigCharFieldIndex, self).prepare(term)[:245] + + class ForumMessageIndex(indexes.SearchIndex, indexes.Indexable): - text = indexes.CharField(document=True, use_template=True) + text = BigCharFieldIndex(document=True, use_template=True) auto = indexes.EdgeNgramField(use_template=True) def get_model(self):