我正在将应用程序从使用普通SQLite数据库转换为启用全文搜索的应用程序。它有几个BLOB列,用于存储数字签名等内容,显然不需要编制索引。我已经读过其他人通过将所有非TEXT数据移动到一个单独的非FTS3表来解决这个问题,他们在必要时将它们与FTS3表连接在一起,但这是一个非常不优雅的解决方案。有没有办法简单地从索引中排除某些列?
答案 0 :(得分:0)
它并不优雅。 SQL是关系型的,连接是生活中自然的一部分。认为它们“不优雅”是导致陈规定型的数据库设计不佳的原因。
您已经确定有两种不同的数据 - 您经常需要搜索的文本,而您不需要搜索的数据。将这些存储在两个不同的表中绝对没有错误或不优雅。
答案 1 :(得分:0)
您可以通过创建可以选择的联接视图来减轻麻烦。您仍然可以在源自fts表的列上使用MATCH,并且每次要查询时都不必进行连接。