我正在尝试为搜索用户实现基于djapian的全文搜索 我的django网站中的个人资料。我基本上按照以下步骤来构建 索引:
python manage.py index --rebuild
重建索引。但是当我尝试使用Profile indexer进行搜索时:
Profile.indexer.search("query")
它没有给我任何结果。我没有收到任何错误。
有人可以帮我弄这个吗?我是新手w.r.t. Django的+ djapian。
---更新06/29/09
我的索引器定义位于models.py中,如下所示:
class Profile(models.Model): user = models.ForeignKey(User, unique=True, verbose_name=('user')) name = models.CharField(('name'), max_length=50, null=True, blank=True) about = models.TextField(('about'), null=True, blank=True) institution = models.CharField(('institution'),max_length=100,null=True, blank=True) location = models.CharField(_('location'), max_length=40, null=True, blank=True) website = models.URLField(_('website'), null=True, blank=True, verify_exists=False) def unicode(self): return self.user.username def get_absolute_url(self): return ('profile_detail', None, {'username': self.user.username}) get_absolute_url = models.permalink(get_absolute_url) class Meta: verbose_name = _('profile') verbose_name_plural = _('profiles')
class ProfileIndexer(djapian.Indexer): fields = ['name', 'about', 'institution','location'] tags = [ ('name','name'),('about','about'),('institution','institution'),('location','location')]
djapian.add_index(Profile,ProfileIndexer,attach_as = 'indexer')
djapian.add_index(Profile,ProfileIndexer,attach_as = 'indexer')
答案 0 :(得分:1)
你可能缺少的是
Profile.indexer.update()
在models.py的末尾(你只需要这样做一次)。
现在,我可能使用的是旧版本的Djapian,但以下内容似乎适用于我(models.py的结尾):
profile_indexer = djapian.Indexer(
model=Profile,
fields=[..., ...],
tags=[(..., ...), (..., ...)]
)
# Run once and then comment out.
Profile.indexer.update()