Bry*_*man 7 python django search full-text-search psql
我正在使用 Django 全文搜索跨多个字段进行搜索,但在使用部分字符串进行搜索时遇到问题。
假设我们有一个名为“Sample Report”的报告对象。
vector = SearchVector('name') + SearchVector('author__username')
search = SearchQuery('Sa')
Report.objects.exclude(visible=False).annotate(search=vector).filter(search=search)
Run Code Online (Sandbox Code Playgroud)
下面的 QuerySet 是空的,但如果我包含完整的单词“Sample”,那么报告将出现在 QuerySet 中。
无论如何要使用 icontains 或前缀与 django 全文搜索?
这适用于 Django 1.11:
tools = Tool.objects.annotate(
search=SearchVector('name', 'description', 'expert__user__username'),
).filter(search__icontains=form.cleaned_data['query_string'])
Run Code Online (Sandbox Code Playgroud)
注意icontains过滤器中的 。