首页 > 解决方案 > 如何在 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 ORM。

标签: pythonsql-serverdjangofull-text-searchrawsql

解决方案


推荐阅读