0

使用 django-haystack 和 solr 作为搜索引擎,我已经成功实现了一个搜索引擎,它会抛出用户名、名字、姓氏或电子邮件地址与给定查询匹配的用户列表。

search_indexes.py

from haystack.indexes import *
from haystack import site

from django.contrib.auth.models import User

class UserIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    first_name = CharField(model_attr='first_name')
    last_name = CharField(model_attr='last_name')
    email = CharField(model_attr='email')

    def index_queryset(self):
        return User.objects.exclude(username='root')

site.register(User, UserIndex)

user_text.txt

{{ object.username }}
{{ object.first_name }}
{{ object.last_name }}
{{ object.email }}

但是,我打算让用户设置他们的隐私设置,这样他们就无法使用他们的名字、姓氏或电子邮件地址进行搜索。

几天来,我一直在敲打我的头和我的电脑,试图完成这个功能,但还没有找到任何真正好的解决方案。

是否有可能完成上述功能?

非常感谢您提前。

4

1 回答 1

1

您可以创建一个约束表,例如使用 haystack 的 SearchQuerySet 来排除。这是一个使用tastepie 作为API 的示例,但这也可能是您的自定义服务或视图层。

http://django-tastypie.readthedocs.org/en/latest/resources.html#advanced-filtering

于 2012-10-13T08:26:41.850 回答