В настоящее время у меня есть база данных курсов, и она имеет 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)
Метод юникода для этого курса сделан на выходе что-то вроде:
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 как движок), но чтобы было проще index Я просто добавил новый столбец к модели с именем text
, в которой я только что добавил текст Юникода каждого курса. Этот метод работает очень хорошо, но очевидно, что он не является надежным и потому что это всего лишь небольшой проект для меня в целях обучения, я хотел бы знать более эффективные способы выполнения этого поиска. Есть идеи?
вы используете MySQL – shiva
Да, я использую MySql DB – leonsas
U можно попробовать MYSQL полный Tet поиск http://www.mercurytide.co.uk/news/article/django-full-text-search/ – shiva