datasette 默认能发现数据间的关系, 比如 post.author_id 这一列会映射到 user.id, user.name 表格, 只要你定义了 Foreign Key, 则 datasette 就会自动发现, 并为 post.author_id 这一列自动添加上对应 user 的链接.
sqlite 很早就有内置的全文搜索引擎了. 这套全文搜索的引擎叫做 FTS3, FTS4.
从 SQLite3.5.0 (2007-09-04) 版本开始就支持 FTS3, 从 SQLite3.7.4 (2010-12-07) 起就开始支持 FTS4. 4主要是带来性能上的大幅提升.
其实现方法实际上是创建为指定的表创建一个虚拟表. 虚拟表不储存实际的数据, 只储存关系和索引.
在 Sqlite 中启用全文搜索有一点复杂. 请参考以下文档:
- 官方文档: https://www.sqlite.org/fts3.html
- 创建: 1.2
- 销毁: 1.3
- 简单查询: 1.4
- 全文搜索查询详细介绍: 3.
datasette 能自动检查数据库的 metadata, 能自动发现全文搜索索引.
- 创建全文搜索索引: https://datasette.readthedocs.io/en/latest/full_text_search.html#adding-full-text-search-to-a-sqlite-table
- 定义全文搜索虚拟表以及建立索引:
我也是通过 datasette 才知道 sqlite 早就有全文搜索功能了...