优秀的编程知识分享平台

网站首页 > 技术文章 正文

php使用Sphinx Coreseek进行全文检索

nanyue 2024-08-07 18:59:09 技术文章 10 ℃

继上两篇文章之后:

四、安装PHP的Sphinx扩展模块

1、下载地址

http://pecl.php.net/package/sphinx

2、右键复制下载链接地址

http://pecl.php.net/get/sphinx-1.3.2.tgz

3、Linux中使用wget下载

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

文件名:sphinx-1.3.2.tgz

4、安装

前提:

yum -y install php-devel

注:安装其它拓展包的时候,同样也需要这个工具!

a、安装libsphinxclient

cd /usr/local/src/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient/

./configure

make

make install

注:按照视频中所讲,可能会出错!

b、编译

tar zxvf fileName

文件名:sphinx-1.3.2

cd /usr/local/src/sphinx-1.3.2

/usr/local/php/bin/phpize

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

c、安装

make && make install

运行后:

d. 修改配置文件

vim /usr/local /php/etc/php.ini

加入extension = sphinx.so

重启Apache:/usr/local/apache2/bin/apachectl restart

通过浏览器查看phpinfo()的信息,看有没有关键字"Sphinx"

特别注意:千万别忘了启动“/usr/local/coreseek/bin/searchd”

核心步骤:

1、安装Coreseek

2、安装PHP的Sphinx拓展

3、更改csft.conf文件

4、开机启动:/usr/local/coreseek/bin/searchd

vi /etc/rc.local(或者 vi /etc/rc.d/rc.local)

/usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/csft.conf --pidfile /usr/local/coreseek/var/log/searchd.pid

5、生成索引:./indexer

6、编写代码:实现搜索

PHP测试Coreseek:

<?php

$keywords = '北京天安门';

#创建sphinx对象==>安装php的Sphinx拓展

$sphinx = new SphinxClient();

#连接Coreseek服务器==>安装Coreseek服务器并启动Coreseek服务器

$sphinx->SetServer("localhost", 9312);

/*

SPH_MATCH_ALL 匹配所有查询词(默认模式).

SPH_MATCH_ANY 匹配查询词中的任意一个.

*/

$sphinx->setMatchMode(SPH_MATCH_ANY);

/*

*——代表在"所有的索引"中进行查找!

*/

$result = $sphinx->query($keywords,"*");

/*

echo '<pre>';

print_r($result);

echo '</pre>';

*/

//获得记录ID:以便从数据库中获取相应记录

/*

echo '<pre>';

print_r(array_keys($result[matches]));

echo '</pre>';

*/

//将记录ID组合成字符串以便"sql的in查询"

$result_id = array_keys($result[matches]);

$ids = implode(',',$result_id);

echo $ids;

Tags:

最近发表
标签列表