一名热爱体感技术的
业余专业开发人员

升级Ubuntu/Debian上python中sqlite3的版本

最近在尝试优化公众号绝对影迷的搜索功能,我自己想的是内存数据库,此外听给力同事的建议使用全文检索。

内存数据库的话,每次程序启动都要重新生成一个数据库,包含电影id和名字,使用select like速度上应该会有一定提升,但是没见过别人的数据。

全文检索,一搜,厉害了,sqlite3的数据库中全文检索用到的竟然有google的代码。但要加上全文检索,没那么容易!首先发现原来的系统下python3的全文检索对中文是没啥支持的,除非有空格,才知道把那句话分成几个分词。这种默认的检索对英文还是有点用,对中文没啥用,支持这个功能也只有fts4的icu zh中文分词功能,fts5默认也是没有的。搜到github上有国人人对fts5进行魔改,使用微信的icu中文框架,也使得fts5支持了中文分词,但是都是移动的项目,暂时也没法用到linux里面去。

想让sqlite3支持,那么要重新编译,重新编译后又发现python3找不到这个模块,发现要重新修改环境变量才行。

首先对于sqlite3的编译,我已经转载,http://brightguo.com/sqlite3-linux-compile/

而python3也要重新编译(这个块待实现,不编译看看是否可以)http://brightguo.com/python3-6-5-linux-compile/

但上面这个编译得修改下了,我贴出修改后的:

此外为了要修改环境变量,为了使得每次修改都有效,我们这个改

vim /etc/profile

添加到最后一行:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

发现这么玩,没鸟用,还是要在supervisor设置里加上,如 

参考文章:

http://linux48.com/2012-08-03-sqlite-source-upgrade.html

http://oi.0w0.io/2018/01/05/Ubuntu-16-04-Python3-配置SQLite3-的-icu-分词/

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址