Django-创建或扩展默认的QuerySet过滤器

时间:2018-07-31 11:36:58

标签: python django

我目前正在使用Django构建城市搜索程序。当然,Django包括一些现成的字段查找,例如'icontains','in','gte'等;但是对于我的特定用例,我正在寻找比icontains更高级的东西,它将在查询字符串和数据库将检索到的相应结果之间产生更准确的匹配(请参见下面的示例!)。我认为最好是“创建”自己的查找或扩展/实现现有的更高级的查找之一,例如从查询中找到城市名称的标准差(在Django Docs here中)

此功能的示例:

  • 数据库中可能包含名称相似的城市,例如“曼谷”和“班加罗尔”
  • 用户搜索“爆炸”
  • 结果将偏向于与城市匹配 Bang kok,因为曼谷中包含的大多数字母(> 50%)(不区分大小写)都与字符串“ bang”匹配,但是 Bang 不会返回alore,因为该字符串不小于城市标题的50%

StdDev聚合功能在这里看起来也很有用,但是我不确定这对于单词而不是数字可能如何工作。

注意:

我特意使这种情况变得很普通,以便偶然发现任何答案的其他人可能会发现它们很有用,因为这样可能会更笼统。

0 个答案:

没有答案
相关问题