現在、コースのデータベースがあり、6 つの列があります。
class Course(models.Model):
title = models.CharField(max_length=50)
number = models.CharField(max_length=12)
Cat1 = models.BooleanField()
Cat2 = models.BooleanField()
Cat3 = models.BooleanField()
department = models.ForeignKey(Department)
このコースの unicode メソッドは、次のような出力を行うように作成されています。
def __unicode__(self):
return u'%s %s %s %s %s %s' % (self.department, self.number, self.title, 'CAT1' if self.Cat1 else '','Cat2' if self.Cat2 else '','Cat3' if self.Cat3 else '')
これは次のようなものを返します: ENG 1104 Academic Writing Cat1 Cat3
テキストクエリでコースを見つける検索を実装しようとしているので、Haystack (エンジンとして Whoosh を使用) を試しましたが、インデックスを作成しやすくするために、 という名前のモデルに新しい列をtext
追加しました。各コースの Unicode テキスト。この方法はかなりうまく機能しますが、明らかに堅牢ではありません。これは学習目的の私の小さなプロジェクトにすぎないため、この検索を実行するためのより効率的な方法を知りたいです。何か案は?