Sphinx配置过程及使用

分类:Sphinx | 作者:凹凸曼 | 发表于2011/03/09 2条评论

Linux(CentOS为案例)下怎样安装sphinx, 怎样建立索引,并且是自动的建立所需要的,怎样通过php调用sphinx,并查询!

一系列问题等着起的!

接下来就开始吧!

一、安装

 #确保又mysql库 没有的话预编译的时候会报错的,那就要先安mysql库,不过我这里就不讲了!

查看–如何在没安装MySQL的服务器上安装Sphinx(远程连接)?

官网:http://sphinxsearch.com/

wget  http://sphinxsearch.com/files/sphinx-1.10-beta.tar.gz

tar   zxvf     sphinx-1.10-beta.tar.gz

cd   sphinx-1.10-beta

./configure  –prefix=/usr/local/sphinx –with-mysql=/usr/local/mysql  

make &&make install

二、修改配置文件

vi /usr/local/sphinx/etc/sphinx.conf

连接数据库的用户名和密码

sql_host=              数据库主机地址(如果是外网,请确保防火墙允许链接)

 sql_user        = root

 sql_pass        = ***** #你自己的密码

sql_db=                 数据库名称

sql_port=               数据库端口

searchd配置说明

port=                     sphinx的端口(9312 与 searchd.exe监听结果一致)

索引路径

path      = /log/sphinx/test1

在sphinx目录下有一个example.sql

在mysql中,新建一个数据库test,然后把example.sql导入进去

三、建立索引

/usr/local/sphinx/bin/indexer –config /usr/local/sphinx/etc/sphinx.conf test1

indexing index ‘test1’…
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.245 sec, 788.77 bytes/sec, 16.35 docs/sec

四、启动sphinx

/usr/local/sphinx/bin/indexer –config /usr/local/sphinx/etc/sphinx.conf

五、查询测试

 /usr/local/sphinx/bin/search -c /usr/local/sphinx/etc/sphinx.conf another

index ‘test1’: query ‘another ‘: returned 1 matches of 1 total in 0.000 sec

displaying matches:
1. document=3, weight=2, group_id=2, date_added=Sat Aug  8 23:34:22 2009
        id=3
        group_id=2
        group_id2=7
        date_added=2009-08-08 23:34:22
        title=another doc
        content=this is another group

words:
1. ‘another’: 1 documents, 2 hits

六、调用

应用程序如果想调用Sphinx,可以从两个方面:

A:是通过Sphinx官方提供的API接口(接口有Python,Java,Php三种版本)

B:是通过安装SphinxSE,然后创建一个中介sphinxSE类型的表,再通过执

       采用sphinxSE必须要求为mySQL安装sphinxSE Engine驱动行特定的SQL语句实现

C:使用libsphinxclient+php的sphinx扩展 代替 sphinxapi (等同于第一种方案)

目前我采用的A方案(php)

http://sphinxsearch.com/files/sphinx-1.10-beta.tar.gz 的解压目录有一个API目录,里面有三个PHP文件:test.php,test2.php和

sphinxapi.php。sphinxapi.php是sphinx调用接口封装文件

在安装了php ,nginx或者apache环境下可以运行一下,test.php及test2.php,就明白了

C方案需要libsphinxclient.so及下面的php 的扩展 sphinx

重要提示:安装php 的扩展 sphinx前必须正确安装好 libsphinxclient.so

libsphinxclient.so的安装包    http://sphinxsearch.com/files/sphinx-1.10-beta.tar.gz 的api文件下

下面是 php 的扩展 sphinx

Sphinx API 官网:http://pecl.php.net/package/sphinx

下载地址 :http://pecl.php.net/get/sphinx-1.1.0.tgz

Sphinx客户端说明:http://cn.php.net/sphinx

本文出自 “凹凸曼” 博客,请务必保留此出处http://www.apoyl.com/?p=290

参考文章:http://blog.sina.com.cn/s/blog_5aefd9770100ag35.html

                    http://zhengdl126.javaeye.com/blog/423592

日志信息 »

该日志于2011-03-09 09:49由 凹凸曼 发表在Sphinx分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

目前盖楼 (2)层:
  1. 凹凸曼说道:

    C方案 使用libsphinxclient+php的sphinx扩展 代替 sphinxapi

    试了一下:

    [root@localhost libsphinxclient]# ./configure –with-sphinx =/usr/local/sphinx/

    在编译libsphinxclient的时候报错误

    [root@localhost libsphinxclient]# make
    make all-am
    make[1]: Entering directory `/usr/local/src/sphinx-1.10-beta/api/libsphinxclient’
    /bin/sh ./libtool –mode=compile –tag=CC gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c -o

    sphinxclient.lo sphinxclient.c
    gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c sphinxclient.c -fPIC -DPIC -o .libs/sphinxclient.o
    sphinxclient.c: In function ‘net_connect_get’:
    sphinxclient.c:1358: error: ‘SO_NOSIGPIPE’ undeclared (first use in this function)
    sphinxclient.c:1358: error: (Each undeclared identifier is reported only once
    sphinxclient.c:1358: error: for each function it appears in.)
    make[1]: *** [sphinxclient.lo] 错误 1
    make[1]: Leaving directory `/usr/local/src/sphinx-1.10-beta/api/libsphinxclient’
    make: *** [all] 错e.
    怎样解决呢?
    解决办法:Sphinx 编译的问题及解决办法(sphinxclient.c:1358: error: ‘SO_NOSIGPIPE’ undeclared) 地址:http://www.apoyl.com/?p=300

  2. 凹凸曼说道:

    问题解决了,接着安装 php 的扩展 sphinx

    wget http://pecl.php.net/get/sphinx-1.1.0.tgz

    tar zxvf sphinx-1.1.0.tgz

    cd sphinx-1.1.0

    ./configure –with-php-config=/usr/local/php/bin/php-config

    make

    make install

    cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/sphinx.so /usr/lib/php/modules/

    vi /usr/local/php/etc/php.ini

    extension=sphinx.so (开启)

    搞定
    重启服务
    查一下,phpinfo()的信息里,有没有这行 ”sphinx support enabled “

    有的话,就恭喜你了!娃哈哈!

    接下来运行测试文件,你明白咋子处理散!嘿嘿

发表评论 »

« »