Python-SQLite FTS3替代品?

2024-04-19 21:05:06 发布

您现在位置:Python中文网/ 问答频道 /正文

对于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下运行。在

有更好的方法吗?也许是另一个图书馆?快一点的?谢谢您。在


Tags: the方法text文档executesqlite语法buy
1条回答
网友
1楼 · 发布于 2024-04-19 21:05:06

我建议您单独安装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路径。在

祝你好运, 保罗

相关问题 更多 >