python - 如何在 Django 中添加 SQLServer 全文搜索?
问题描述
在 Django 中,可以在使用 Postgres 时本地使用全文搜索。但是,当将它与 SQL Server(和 django-pyodbc-azure)一起使用时,没有简单的方法可以做到(据我所知)。
要在 SQL Server 中进行全文搜索,请使用docsCONTAINS(column, word)
中描述的函数,但 Django ORM 包含 do: 。LIKE '% text %'
我确实找到了两种替代方法来绕过这个问题。一种是使用 RAW SQL,另一种是使用 django extra。
使用 django 原始 SQL 的片段:
sql = "SELECT id FROM table WHERE CONTAINS(text_field, 'term')"
table = Table.objects.raw(sql)
额外使用 django:
where = "CONTAINS(text_field, 'term')"
table = Table.objects.extra(where=[where])
它有两个问题:
- 原始查询更难维护。
- Django文档。建议不要使用额外的方法。
所以我想知道是否有更好的方法来做到这一点,如果可能的话,使用“纯”django ORM。
解决方案
推荐阅读
- javascript - JavaScript - 使用 eval() 作为条件 - 是否正确?
- node.js - 中止 node.js 中的进程
- c# - 以有组织和结构化的方式显示 PDF 中的数据
- javascript - 在 Angular 7 中使用 ng-content 动态隐藏子项
- python - 从python中的用户给定列表中查找平均值
- python - cvxpy,没有 cplex 属性
- python - 将字典中的项目列表相乘
- java - 如何在不使用解析或自动转换的情况下将十六进制数转换为二进制
- java - 用Java解析JSON双括号
- python - 如何将 python 字符串数组转换为 POINTER(c_void_p)