1

我目前在我的个人项目中使用 PostgreSQL、Python 和 Django。该网页有一个搜索栏,我使用 SearchVector 开始工作。我遇到的问题是我的搜索栏函数和 request.GET 方法返回一个元组,并且搜索向量在我的数据库中搜索那个确切的短语。基本上单个单词搜索工作正常,但是一旦有人输入另一个单词或短语,那个确切的短语必须在数据库中,否则不会返回任何内容。

例如:我在搜索中输入了“god”这个词,所有带有“god”的条目都显示得很好。但是我将短语“神蛇”放入搜索中,即使有包含这些词的条目,也没有出现任何内容。

这是我的搜索栏功能:

def searchbar(request):
    if request.method == "GET":
        search = request.GET["search"],
        print(search)
        print(search[0])

        deity = Deity.objects.annotate(search=SearchVector('name', 'location', 
        'alt_name', 'culture', 'religion', 'description', 
        'pop_culture'),).filter(search=SearchQuery(search[0], search_type='phrase')),

        context = {
            "user": User.objects.get(id = request.session['user_id']),
            "deity": deity,
            "search": search[0],
        }
        return render(request, 'search_results.html', context)
4

0 回答 0