我遇到了索引過程無法正常工作的問題。我有一個名爲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索引器正在讀取內存問題整個數據集在迭代之前,所以它可能與此有關,儘管我不確定乾草堆是否適用於這些問題 –