【发布时间】:2016-05-03 10:14:33
【问题描述】:
我正在开发一个带有 sqlite3 数据库的 django 应用程序,它具有固定的数据库内容。固定是指数据库的内容不会随着时间而改变。模型是这样的:
class QScript(models.Model):
ch_no = models.IntegerField()
v_no = models.IntegerField()
v = models.TextField()
表中有大约 6500 条记录。给定可能缺少某些单词或某些单词拼写错误的文本,我需要确定其ch_no 和v_no。例如,如果 db 中有一个 v 字段,其中包含文本 "This is an example verse",那么像 "This an egsample verse" 这样的给定文本应该给我来自 db 的 ch_no 和 v_no。我相信这可以使用全文搜索来完成。
我的查询是:
全文搜索可以做到这一点吗?根据我的研究,我的猜测是,正如sqlite3 page 中所说:全文搜索是“Google、Yahoo 和 Bing 对放置在万维网上的文档所做的事情”。在 SO 中引用,我也阅读了 this article 以及许多其他内容,但没有发现任何 非常 符合我的要求的内容。
如何在 django 模型中使用 FTS? 我阅读了 this,但没有帮助。似乎太陈旧了。阅读here:“...需要直接操作数据库以添加全文索引”。搜索主要提供 MySQL 相关信息,但我需要在 sqlite3 中进行。那么如何在 sqlite3 中进行直接操作?
编辑:
我选择坚持使用 sqlite3 是否正确?或者我应该使用不同的东西(比如Alex Morozov 所说的 haystack+elasticsearch)?我的数据库不会变大,我研究过对于小型数据库,sqlite几乎总是更好(我的情况与第四个in sqlite's when to use checklist匹配)。
【问题讨论】:
标签: python django sqlite full-text-search