正打算在python(python3)中创建一个简单的搜索引擎。通过sqlite fts3/fts4的文档,由于全文搜索速度很快,因此它成为我选择存储文档的选择。我已经有一组网页,其文本被提取并保存在文本文件中。
因此,我打算创建FTS4表方式如下:
sqlite中的信息存储fts3/fts4
conn = sqlite3.connect('/home/xyz/exampledb.db')
c = conn.cursor()
c.execute("CREATE VIRTUAL TABLE mypages USING fts4(docid, name, content)")
那么我会遍历文本文件,其存储在一个字符串,与名称一起插入这个字符串到FTS表和docid(从1到n的整数,其中n是总文档)
但是sqlite文档中的以下语句让我感到困惑,并且不确定我的上述代码是否可用:
虚拟表是外部存储的接口或计算引擎似乎是一个表,但实际上并没有将信息存储在d中数据库文件。
那么信息将被存储在哪里?如果它是一个常规的sqlite表,我会先创建一个数据库文件并在这个数据库文件中创建表。如果我必须在另一台机器上使用相同的数据库,我会简单地复制这个文件并粘贴在那台机器上。我可能在文档中遗漏了一些东西,但我想清楚在我实现它之前如何存储信息。
按照我的计划,我有权抓取网页的客户机,并从pages.But最终存储中提取文本是在我的服务器上,所以我的选择是要么在这些机器上创建临时表FTS,然后将其传送到服务器(从便携式硬盘传输),将此临时表与主FTS表合并或将这些文本文档传输到服务器,然后使用这些文档更新主FTS表。接着通过上述文档,我觉得创建成本太高临时表然后合并它,因为合并比使用文档更新需要更多的时间。 – user2078134 2013-02-23 15:54:19