我使用 Django 全文搜索来搜索多个字段,但在使用部分字符串搜索时遇到问题。
假设我们有一个名为“示例报告”的报告对象。
vector = SearchVector('name') + SearchVector('author__username')
search = SearchQuery('Sa')
Report.objects.exclude(visible=False).annotate(search=vector).filter(search=search)
以下查询集是空的,但如果我包含完整的单词“示例”,那么报告将出现在查询集中。
有没有办法使用 icontains 或使用 django 全文搜索作为前缀?
最佳答案
这适用于 Django 1.11:
tools = Tool.objects.annotate(
search=SearchVector('name', 'description', 'expert__user__username'),
).filter(search__icontains=form.cleaned_data['query_string'])
注意过滤器中的icontains
。
关于python - Django 全文搜索不匹配部分单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45516642/