我是False
初学者,我正试图弄清楚如何更新文档。
我有以下SearchIndex:
haystack
我想在用户添加新产品关键字时更新class ProductIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True) # contains keywords associated with the product
name= indexes.CharField(model_attr='name')
def get_model(self):
return Product
def prepare_text(self, obj):
return [tag.keyword for tag in obj.productkeywords_set.all()]
字段。我有text
条记录,因此使用80k
需要很长时间。有没有办法只更新python manage.py update_index
文档?
答案 0 :(得分:1)
另一个包括SignalProcessor是haystack.signals.RealtimeSignalProcessor类。它是BaseSignalProcessor类的极薄扩展,区别在于实现了setup / teardown方法,将任何Model save / delete绑定到信号处理器。
如果模型具有关联的SearchIndex,则RealtimeSignalProcessor将在搜索索引中触发该模型实例的更新/删除。
配置如下:
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
这会导致所有SearchIndex类以实时方式工作。
通过启用它,您的索引将在模型上的保存/删除时自动更新