搜索时出现“OperationalError,无法识别的令牌”

ste*_*err 2 django search full-text-search django-queryset

进行任何搜索查询时出现此错误:

OperationalError at /search/
unrecognized token: "@"
Run Code Online (Sandbox Code Playgroud)

我的看法:

class Search(ListView):

    model = Opinion
    template_name = 'home/search.html'
    context_object_name = 'search_results'
    paginate_by = 10

    def get_queryset(self):
        qs = Opinion.objects.all()

        keywords = self.request.GET.get('q')
        if keywords:
            query = SearchQuery(keywords)
            vector = SearchVector('text')
            qs = qs.annotate(search=vector).filter(search=query)
            qs = qs.annotate(rank=SearchRank(vector, query)).order_by('-rank')

        return qs
Run Code Online (Sandbox Code Playgroud)

我的搜索表单:

<form class="navbar-form navbar-left" role="search" method="get" action="{% url 'home:search' %}">
    <div class="form-group">
        <input type="text" class="form-control" name="q" value="">
    </div>
    <button type="submit" class="btn btn-default">Search</button>
</form>
Run Code Online (Sandbox Code Playgroud)

任何建议或反馈将受到欢迎和不胜感激。

谢谢你。

小智 5

确保您使用的是 PostgreSQL 数据库。

当我尝试搜索我的本地数据库 SQLite 时遇到了这个错误。