django - 为模糊 FTS + Typeahead 查询 Django Postgres
问题描述
我将 PostgreSQL 12.3 与 Django 3.0.8 一起使用。我正在尝试实现提前输入功能。我尝试使用 Trigram 相似性,但效果不太好,因为如果我有一个文本说“椅子”,我必须在得到结果之前输入“cha”。
我正在使用 corejavascript/twitter 的 typeahead JS 库。他们的第一个示例(基础知识)允许您输入单个字母并立即获得结果,其中一些甚至不是单词的前缀。
我该怎么做?您可以在此处查看我当前的功能:https ://github.com/Donate-Anything/Donate-Anything/blob/76348e9362d386d3d6375b9a75d47d5765960992/donate_anything/item/views.py#L21-L30
我认为我应该将 to_tsvector 与 SearchVectorField 一起使用,但是当我实现它时(使用这样的查询:
queryset = (
Item.objects.defer("is_appropriate")
.filter(name_search=str(query))
)
然后我什至看不到结果,直到我输入完整的单词。那时我的实现会是什么样子?(实现 SearchVectorField 触发器的文章)
解决方案
推荐阅读
- linux - 为什么 find piped to xargs mv 删除了我的文件?
- php - 如何自动运行包的作曲家脚本
- c - 在具有 const 成员的结构上使用 memcpy 是否安全?
- jenkins - 如何通过詹金斯中的特定变更集编号下载源代码?
- php - 文档已移动 - Android Studio
- java - 在杰克逊中使用@JsonCreator 进行反序列化时,是否可以确定要构造的类型?
- javascript - 如果从某个 html 文件接近,是否有一种简单的方法可以只执行 if 语句?
- html - 在图形标签内使用标签是否正确?
- amazon-web-services - 在 S3 上创建文件文件夹
- android - 对齐卡片内的搜索图标和文本