Posts Tagged ‘Sphinx’

Install Sphinx 2.0.3 on Debian (Solution for missing MySQL include files)


09 1月
aptitude install libmysql++-dev libmysqlclient-dev libssl-dev libssl-dev is critical here. without it you'll meet the weird problem below even you got other 2 installed as other tutorials said: checking for mysql_real_connect... no checking MySQL include files... configure: error: missing include files. I guess somehow it need the libssl to do the mysql_real_connect and without it you cannot pass the configure. after these, it's quite easy and normal. Just download the tar and extract, configure, make, make install. Done.

SCWS中文分词


20 5月
因为在上一篇文章的末尾提到的,coreseek分词存在的问题,经过详细的测试,比较了原版sphinx和coreseek用同一种配置文件,都不分词索引的情况下,coreseek的速度仍然大幅度落后于原版sphinx,于是决定近期摒弃coreseek,换上原版的sphinx。但这样的话,coreseek提供的mmseg分词在搜索的时候也就无法继续使用了。(当然,除非你愿意2个都装,coreseek另外开端口只为分词服务- -) 基于这种情况,决定另外找一个分词的东东来支持搜索时的调用。使用传说中的Google搜了一下,基本锁定了几个分词的东东。 1. mmseg4j 同样是mmseg的算法,可惜是java版本的,功能上倒是比coreseek出品的那个mmseg要强大,新版本已经支持了max-word的分词方法,也就是“中华人民共和国”会被分成“中华人民 中华 人民 共和国 共和 国”类似这样的,可以说加大了搜索的智能性。 但可惜的是,对于我们这类纯php环境的朋友,要享受这个东东要付出的代价有点大。除了要整套java环境的支持,还要php-java-bridge这类方式的调用,无不让人望而止步啊。尝试了几个小时后,终于放弃抵抗,寻找其他方向去了。 mmseg4j对java的朋友可能会更有用吧,不过它的max-word分词强大程度还有待考量,我在linux下java调用测试的时候,结果也不是太满意,当然可能和词库有关吧,没有继续深究了。 2.ICTCLAS传说中的中科天玑出品,号称xx国际xx分词奖第一名,号称多少多少用户量,反正光环无数啦,虽然有共享版,但如果商用的话,似乎有不菲的费用。张宴自己搞的那套什么分词,也是基于这个东东的,尝试用他官网的demo测试一下,结果服务器链接错误 - -||| 怎么都感觉很有国企的风格啊。。。虽然似乎听起来算法不错,但想到我们最终还是要商用的,基本放弃。 3. SCWS,ftphp出品,ftphp貌似也是个搜索引擎,国人自己弄的?没太了解过反正。不过他的分词是开源的,号称自己是简易免费的分词,本来没抱什么太大希望其实,不过看他官方数据分词速度居然比楼上传说中的xx分词奖第一名的速度还要快。。。于是决定一试。 具体的文档可以参见官网(很详细很强大),下面我自己的一些心得,以备日后查看: 安装没什么花头,看doc的第一节照抄弄就行了,注意版本号换成最新的,然后因为我从来都是utf8的,所以所有gbk的地方替换掉,词库也只用了utf8的。值得注意的是,如果你和我一样要在php中调用的话,建议把php extension那段都做掉,起初我也偷懒想用php的exec去执行命令行就好了,结果比较下来,效率相差2个数量级。。。exec要上百毫秒,而extension只要几毫秒! 而最终xdebug分析下来,用extension的方式分词,比原来coreseek的mmseg也要快了1个数量级,笑~,估计近期就得和coreseek彻底说byebye了。 具体妙用大家自己看吧,maxwords也是支持的,感觉还不错,也可以另外加自己的词典,效率也很高,目前看来很完美。 ————————2010/5/31—————————————— 如果用txt自定义词库的话,第一次运行的时候,scws会自动把它编译成.xdb的格式,放到/tmp中去,也就是说,如果你的词典和我一样很大的话,而php的超时时间设定的又比较小的话,很有可能永远都无法生成出这个词典,也就是说,每次分词都会超时。 所以,建议大家第一次装好后,用命令行运行一下.txt的词库,类似: /usr/local/scws/bin/scws -c utf8 -r /usr/local/scws/etc/rules.utf8.ini -M 1 -i 中华人民共和国南京西路 -d /usr/local/scws/etc/dict.utf8.xdb:/usr/local/scws/etc/words.txt 之后:mv /tmp/scws-193b5b00.xdb /usr/local/scws/etc/ 以后用起来就是直接:  /usr/local/scws/bin/scws -c utf8 -r /usr/local/scws/etc/rules.utf8.ini -M 1 -i 中华人民共和国南京西路 -d /usr/local/scws/etc/dict.utf8.xdb:/usr/local/scws/etc/scws-193b5b00.xdb 这样就算第一次也不会很慢啦~

貓熊寶寶幼齒園

姜經緯的博客