对于python,有没有替代SQLite+FTS3的好方法?在
我正在迭代一系列文本文档,并希望根据一些文本查询对它们进行分类。例如,我可能想知道一个文档是否在“buy”的三个单词中提到“rating”或“upgraded”。此查询的FTS3语法如下:
(rating OR upgraded) NEAR/3 buy
这一切都很好,但如果我使用FTS3,这个操作似乎相当昂贵。过程如下:
^{pr2}$然后,对每个文档执行如下操作:
#insert the document text into the fts table, so I can run a query
c.execute('insert into fts(content) values (?)', content)
conn.commit()
# execute my FTS query here, look at the results, etc
# remove the document text from the fts table before working on the next document
c.execute('delete from fts')
conn.commit()
这对我来说似乎很贵。在
我对SQLite FTS的另一个问题是它似乎不能与python2.5.4一起工作。“CREATE VIRTUAL TABLE”语法无法识别。这意味着我必须升级到Python2.6,这意味着要重新测试大量现有的脚本和程序,以确保它们能在2.6下运行。在
有更好的方法吗?也许是另一个图书馆?快一点的?谢谢您。在
我建议您单独安装pysqlite2模块。您应该确保您的系统中安装了sqlite3,该系统应具有FTS3模块;-)
签出http://code.google.com/p/pysqlite/downloads/list查看最新代码(截至4月13日,它的版本是2.6.0)。这是常用的setuptools构建。如果您没有安装sqlite3或者它的库没有安装在通常的位置/usr/lib(64),它也应该抱怨。在后一种情况下,请更新LD_LIBRARY_路径,并可能进行调整设置.cfg指定头/lib路径。在
祝你好运, 保罗
相关问题 更多 >
编程相关推荐