mmseg&coreseek编辑词典并重新索引

想增加繁体词库,网上没有找到可用的繁体词库,用mmseg自带的简体词库转繁体,word里有简转繁,但是转的太慢,可以用这个转:http://www.aies.cn/

转好繁体后,转成mmseg的格式,粘贴到mmseg3/etc/unigram.txt后面,有个点需要注意,词和权重中间的那个空格是\t,不是普通空格,正确的mmseg格式如下:

关键词\t权重\r\nx:权重

然后用mmseg讲文本词库转成lib文件:

/usr/local/mmseg3/bin/mmseg -u /usr/local/mmseg3/etc/unigram.txt

执行后会生成unigram.txt.ini.uni文件,直接改名为uni.lib

然后重新索引

/usr/local/coreseek/bin/indexer –config /usr/local/coreseek/etc/csft.conf –rotate –all

然后重启searchd服务

/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf

这个时候就完成字典重建和重新索引了,目前只试了简繁词典,下次试一下其他语言,比如泰语等小语种,不知道是不是也可以

uiautomator2安装配置

1、下载adb工具包,https://dl.pconline.com.cn/download/359035-1.html,按照工具包的说明把所有文件都解压丢到windows/system32、system、SysWOW64目录
2、打开手机usb调试模式,usb线连上手机,然后命令行输入adb devices 查看是否能连上手机
3、下载安装python3,到www.python.org下载并安装
4、打开命令行(cmd),输入命令安装uiautomator2,pip install –pre uiautomator2
5、安装到手机端,打开命令行(cmd) python -m uiautomator2 init
6、安装可视化UI查看工具 pip install –pre -U weditor
7、打开UI查看工具 python -m weditor 会弹出一个页面,输入前面使用adb devices查看到的手机设备号,连接手机,可能需要点一下右边的reload按钮才会看到手机桌面

centos php5.6 安装sqlserver扩展

centos php5.6 安装sqlserver扩展
1、安装freetds
wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar zxvf freetds-stable.tgz
cd freetds-0.91/
./configure –prefix=/usr/local/freetds0.91 –enable-msdblib –with-tdsver=8.0
make &&make install

2、修改配置文件,增加库连接信息
vi /usr/local/freetds0.91/etc/freetds.conf
host = mssql.yourdomain.com
port = 1433
tds version = 8.0
client charset = UTF-8

3、编译php时加上
–with-mssql=/usr/local/freetds0.91
或者以扩展编译php,略

至此mssql_connect应该是可以工作了,如果想要通过pdo连接mssql,还要编译pdo的mssql扩展
cd /php源码目录/ext/mssql
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-dblib=/usr/local/freetds
make && make install

mysql存储过程游标触发停止的一个坑

mysql存储过程里,遍历游标可以通过这样的语句判断是否遍历完毕:
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
如果在遍历游标的循环里,有查询语句,碰巧查询结果是null,那么也会触发这个not found的条件,从而导致遍历提前退出。
为了避开这个问题,要么不要在遍历里查询,要么先select count(*),不管有没有查询到数据,count都会返回一个结果,然后判断count值来决定是否执行遍历里的查询语句,这样就不会触发遍历结束的条件了

thinkphp5与thinkphp3的不同点

1、默认的报错级别,全部为fatal级别,包括变量未定义之类的,可以在common.php里定义error_reporting,入口文件定义无效
2、伪静态路由,直接在route.php里配置一个数组就可以了,但是有个坑,类似这样的路由index.php/module/controller/action/param/value,转换成伪静态后,比如
‘news/:id’ => ‘index/news/article’,
接收参数id是没法通过get或者request之类来接收的需要在action里这样写
public function article(Request $req){
$id = $req->param(“id”);

3、模板,所有模板标签全部改成花括号,比如原先3.x这样写<volist …>,5.x必须这样{volist …}
4、模型,必须要给每个表定义model,然后才能使用model(“table”)来操作模型
5、取消单字母函数,因此不能用M()函数来操作模型,正确方法见上一条
6、join,链式sql的join方法,参数改了,第一参数是被连接表及别名,第二参数是连接条件,add方法取消了,改用insert方法
7、模板渲染,需要用return ,比如return $this->fetch(‘duan’);
8、控制器文件名和类名都不用再加controller