我打算在 python(python3) 中创建一个简单的搜索引擎。通过 sqlite fts3/fts4 的文档,我选择存储文档,因为全文搜索很快。我已经有一组网页,他们文本提取并保存在文本文件中。
因此,我计划通过以下方式创建 fts4 表:
conn = sqlite3.connect('/home/xyz/exampledb.db')
c = conn.cursor()
c.execute("CREATE VIRTUAL TABLE mypages USING fts4(docid, name, content)")
然后我将遍历文本文件,将其存储在一个字符串中,并将该字符串连同名称和 docid 插入到 fts 表中(从 1 到 n 的整数,其中 n 是总文档)
但是 sqlite 文档中的以下语句有我困惑并且不确定我的上述代码是否有效:
虚拟表是外部存储或计算引擎的接口,它看起来是一个表,但实际上并未将信息存储在数据库文件中。
那么信息将存储在哪里?如果它是一个常规的 sqlite 表,我将首先创建一个数据库文件并在这个数据库文件中创建表。如果我必须在另一台机器上使用相同的数据库,我只需复制这个文件并将其粘贴到该机器上。我可能遗漏了文档中的某些内容,但我想在实施之前明确信息将如何存储。