python - Django 全文搜索不匹配部分单词

标签 python django search full-text-search psql

我使用 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/

相关文章:

python 字典。 if 语句

python - Django 自动将超链接 url 附加到现有 url

Python LDAP 搜索

mysql - 使用外文和英文字符获得相同的 MySQL 搜索结果

python - 验证 sqlalchemy 关系

python - QTableWidget 中的输入掩码

python - 使用 python,从字符串中删除 HTML 标签/格式

javascript - HTML 文件未在 Django 中正确加载

python - 在Django home中添加动态生成的matplotlib图片

javascript - jQuery 搜索功能不显示整个 div