ubuntu12.04下coreseek的安装

10 篇文章 0 订阅
3 篇文章 0 订阅

看了这篇文章:http://www.tuicool.com/articles/IvMZJz

1、软件下载

Sphinx 选source tarball。

coreseek

2、安装Sphinx

创建安装目录,并授权

$ sudo mkdir /usr/local/sphinx
$ sudo chmod -R 777 /usr/local/sphinx

安装依赖包

$ sudo apt-get install make gcc g++ automake libtool mysql-client libmysqlclient15-dev libxml2-dev libexpat1-dev

安装

$ tar zxvf sphinx-2.1.9-release.tar.gz
$ cd sphinx-2.1.9-release
$ sudo  ./configure --prefix=/usr/local/sphinx  //prefix 指定安装目录,如果要安装mysql  加上 --with-mysql
$ sudo make && make install

关于sphinx的三个命令,目录是/usr/local/sphinx/bin

indexer   //生成索引
search    //搜索
searchd   //启动sphinx

3、配置sphinx并使用

生成配置文件

$ cd /usr/local/sphinx/etc
$ sudo cp sphinx.conf.dist sphinx.conf

将etc目录下example.sql文件导入到mysql test数据库。 更改sphinx.conf,主要更改myql用户名和密码

生成索引

$ sudo /usr/local/sphinx/bin/indexer --all

如果爆出以下错误

ERROR: index 'test1stemmed': sql_connect: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

则可能是因为mysql.sock的位置问题,在本机中,改位置是/tmp/mysql.sock(与安装mysql时设置有关),在sphinx.conf中取消这一行的注释即可(去掉前面的#号):

#sql_sock                = /tmp/mysql.sock

然后重新创建索引。 执行查询

$ sudo /usr/local/sphinx/bin/search test

可能会爆出以下错误

index 'test1': search error: query too complex, not enough stack (thread_stack=-2665032K or higher required).

注释掉配置文件中下面这行,然后重试

#sql_query_info         = SELECT * FROM documents WHERE id=$id

后台启动searchd的命令

$ sudo /usr/local/sphinx/bin/searchd

然后运行php文件test.php

$ sudo php /usr/local/sphinx/api/test.php test

参考查询结果

Query 'test ' retrieved 3 of 3 matches in 0.000 sec.
Query stats:
  'test' found 10 times in 6 documents

Matches:
1. doc_id=1, weight=101, group_id=1, date_added=2014-08-27 12:15:20
2. doc_id=2, weight=101, group_id=1, date_added=2014-08-27 12:15:20
3. doc_id=4, weight=1, group_id=2, date_added=2014-08-27 12:15:20

4、安转Coreseek

$ tar coreseek-3.2.14.tar.gz

会解压出:csft-3.2.14 mmseg-3.2.14 README.txt testpack 先来安装

$ cd mmseg3.2.14
$ ./configure --prefix=/usr/local/mmseg

注:需提前创建mmseg文件夹并授权777 可能会爆出如下错误

$ config.status: error: cannot find input file: src/Makefile.in

解决方案

$ sudo apt-get install automake
$ aclocal
$ libtoolize --force 
$ automake --add-missing
$ autoconf
$ autoheader
$ make clean

然后重新安装

$ sudo ./configure --prefix=/usr/local/mmseg
$ sudo make && make install

安装coreseek

$ cd csft-3.2.14
$ sudo sh buildconf.sh
$ sudo ./configure --prefix=/usr/local/coreseek --with-mmseg=/usr/local/mmseg/ --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ 
$ sudo make && make install

生成配置文件

$ cd /usr/local/coreseek/etc
$ sudo cp sphinx.conf.dist csft.conf

这里同样把example.sql导入数据库,然后修改csft.conf

5、安装php扩展sphinx

$ sudo pecl install sphinx

可能会爆出如下错误:

$ configure: error: Cannot find libsphinxclient headers

需要安装libsphinxclient

$ cd coreseek-3.2.14/csft-3.2.14/api/libsphinxclient/
$ ./configure --prefix=/usr/local/libsphinxclient
$ sudo make && make install

注:同样需要提前创建libsphinxclient文件夹并授权。

然后重新安装,注意安装过程中需要填写libsphinxclient安装目录。

安装完成后配置php,然后重启apache或nginx

$ echo "extension=sphinx.so" | sudo tee /etc/php5/conf.d/sphinx.ini
$ sudo service apache2 restart
$ sudo service nginx reload

6、使用sphinx需要的东西

1、要有数据,数据库或其他类型的都可以。

2、建立sphinx配置文件。

3、生成索引。

4、启动searchd进程,默认端口9312。

5、用脚本语言(python,php)去连接sphinx服务。

7、启动searchd

$ sudo /usr/local/sphinx/bin/searchd

searchd 命令参数介绍:

-c 指定配置文件

–stop 停止服务

–pidfile 用来显式指定一个 PID 文件

-p 指定端口







http://blog.csdn.net/jcjc918/article/details/39032689

Sphinx/Coreseek 4.1 执行 buildconf.sh 报错,无法生成configure文件


    之前在安装 coorseek 的时候,遇到了一些错误,在官网根本看不到解决方案,最后 google 在一个大牛博客的评论区找到了解决方法,顿时把膝盖献上去了~~

     整理到这里是为了方便一些人找到,长城防火墙毕竟让 google 不是那么友好了 %>_<% 不过大牛的博客还是上得了的:传送门


     错误现象:执行 buildconf.sh 报错,无法生成configure文件

     提示的主要错误为:

  1. libstemmer_c/mkinc.mak:10: warning: source file 'runtime/utilities.c' is in a subdirectory,  
  2. libstemmer_c/mkinc.mak:10: but option 'subdir-objects' is disabled  
  3. libstemmer_c/Makefile.am:3: 'libstemmer_c/mkinc.mak' included from here  
  4. libstemmer_c/mkinc.mak:10: warning: source file 'libstemmer/libstemmer.c' is in a subdirectory,  
  5. libstemmer_c/mkinc.mak:10: but option 'subdir-objects' is disabled  
  6. libstemmer_c/Makefile.am:3: 'libstemmer_c/mkinc.mak' included from here  
  7. /usr/local/share/automake-1.14/am/library.am: warning: 'libstemmer.a': linking libraries using a non-POSIX  
  8. /usr/local/share/automake-1.14/am/library.am: archiver requires 'AM_PROG_AR' in 'configure.ac'  
  9. libstemmer_c/Makefile.am:2: while processing library 'libstemmer.a'  
  10. /usr/local/share/automake-1.14/am/library.am: warning: 'libsphinx.a': linking libraries using a non-POSIX  
  11. /usr/local/share/automake-1.14/am/library.am: archiver requires 'AM_PROG_AR' in 'configure.ac'  
  12. src/Makefile.am:14: while processing library 'libsphinx.a'  

       看起来非常多其实就是两个:1.but option 'subdir-objects' is disabled    2. archiver requires 'AM_PROG_AR' in 'configure.ac'


     解决方案:

     1. 在 csft-4.1/buildconf.sh 文件中,查找

  1. && aclocal \  

     后加上

  1. && automake --add-missing \  

     2. 在 csft-4.1/configure.ac 文件中,查找:
  1. AM_INIT_AUTOMAKE([-Wall -Werror foreign])  
     改为:
  1. AM_INIT_AUTOMAKE([-Wall foreign])  

     查找:
  1. AC_PROG_RANLIB   
     后面加上
  1. AM_PROG_AR  

      3. 最后,在 csft-4.1/src/sphinxexpr.cpp 文件中, 替换所有:
  1. T val = ExprEval ( this->m_pArg, tMatch );  
      成为:
  1. T val = this->ExprEval ( this->m_pArg, tMatch );  


      最后的最后,再次献上我的膝盖......



如果报G++ not found ,就apt-get install g++.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值