我遇到了索引过程无法正常工作的问题。我有一个名为Article的模型,在db中,我在Article表中有943条记录。对于本地测试,我有一个包含12篇文章的sqlite数据库,并且rebuild_index和update_index正常运行。然而,当我上传到我们的Web服务器我得到rebuild_index或update_index以下的输出:Rebuild_index和update_index死亡
>python manage.py update_index
>Indexing 943 articles
>Killed
我看着这个答案Django Haystack/ElasticSearch indexing process aborted,但我想,以避免改变草堆源代码,如果我能帮助它。有没有其他人遇到过这个问题?另外,我将whoosh用作后端。谢谢!
这里的模型类:
class Article(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(User)
abstract = models.CharField(max_length=500, blank=True)
full_text = models.TextField(blank=True)
proquest_link = models.CharField(max_length=200, blank=True, null=True)
ebsco_link = models.CharField(max_length=200, blank=True, null=True)
def __unicode__(self):
return self.title
这里的指数类:
class ArticleIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.NgramField(document=True, use_template=True)
title = indexes.NgramField(model_attr='title')
#We'll see how this goes
authors = indexes.NgramField(model_attr='authors')
abstract = indexes.NgramField(model_attr='abstract')
proquest_link = indexes.NgramField(model_attr='proquest_link')
ebsco_link = indexes.NgramField(model_attr='ebsco_link')
def get_model(self):
return Article
def index_queryset(self, using=None):
return self.get_model().objects.all()
你的服务器有多少内存?这听起来像是空间不足了?您为模型编制了哪些信息? –
594M。我们正在AWS EC2实例上运行。是的,这似乎是,不知道如何解决它。我会更新这个问题并向您展示模型和索引类 – AndrewSmiley
我不得不使用'solango'(这是干草堆的先驱),并且因为位于Solr顶部的python/django索引器正在读取内存问题整个数据集在迭代之前,所以它可能与此有关,尽管我不确定干草堆是否适用于这些问题 –