Loading...

    AD: 猛买 | 快递查询 | Jobsdigg | 很棒的男装店

编译安装mmseg+Sphinx(coreseek)

可任意转载,但必须在醒目位置以超链接形式标明文章原始出处和作者信息
原文地址:http://www.blogkid.net/archives/2305.html

已经决定把服务器换成Linux,我很快就在一台虚拟机上操练了起来。通过apt-get和gem能搞定大部分应用程序和ruby的库,但mmseg(分词算法)和Sphinx(搜索引擎)是需要编译安装的。在此我使用了coreseek提供的版本。

准备工作:

apt-get install  python-dev   make   g++

下载并解压软件包不再赘述。首先编译安装mmseg:

./configure –prefix=/usr/local/mmseg
make
make install

我在make的过程中遇到两次错误,都提示“strncmp was not defined in the scope”。这时需要找到报错的文件,打开编辑,加入一行:#include “string.h”。搜索发现这个问题并不普遍,可能和使用的gcc版本有关。修改之后就编译通过了。

之后编译安装Sphinx:

./configure –prefix=/usr/local/coreseek –with-python –with-mysql –with-mmseg-includes=/usr/local/mmseg/include/mmseg –with-mmseg-libs=/usr/local/mmseg/lib/
make
make install

在make过程中也遇到两次错误,提示为“cannot convert int* to Py_ssize_t*”。经搜索发现只有在64-bit的Linux上编译时才会出现,解决方法也很简单:打开报错的文件,找到对应的行,把int pos = 0改为 Py_ssize_t pos = 0即可。一共需要修改两处,修改之后就可以安装成功了。

最后,再把/usr/local/coreseek/bin加入到PATH变量中,Sphinx的命令(indexer/searchd/search)就可以正常使用了,至此,安装完成。

UPDATE: make容易失败,谨记make clean。

3 Responses to “编译安装mmseg+Sphinx(coreseek)”


  1. 1Fenng

    Windows 折腾多费事,弄个Linux算了

  2. 嗯,买了个linode,用linux了

  1. [...] 定位问题之后,我打算简单修复一下。将代码做如下修改并编译之后,顺利地解决了此问题。奇怪的是,12644行assert为何没起作用? [...]

Leave a Reply