ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sphinx续3-php程序的简单调用

sphinx续3-php程序的简单调用

原创 Linux操作系统 作者:a3zi 时间:2015-01-11 20:15:42 0 删除 编辑

Php调用sphinx有2种方法:

1,调用api

2,安装sphinx扩展,添加sphinx.so模块

一般情况下,大多数都是选择第2种方法,安装扩展添加模块。

下面就直接介绍下Php的简单调用:

建立索引:

/usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/sphinx.conf index1

不停服务下索引:

/usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/sphinx.conf --all --rotate

启动索引服务,使PHP的客户端可用

/usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/sphinx.conf 

建立PHP测试文件

$sphinx = new SphinxClient;

#先new一下    
 setServer("localhost", 9312);

#设置sphinx的主机名和端口     
$sphinx->setMatchMode(SPH_MATCH_ANY);

#设置匹配模式,SPH_MATCH_ANY匹配查询中的任意一个;其他的有:SPH_MATCH_ALL,SPH_MATCH_PHRASE;SPH_MATCH_BOOLEAN,SPH_MATCH_EXTENDED   
  $sphinx->setMaxQueryTime(3);

#设置最大搜索时间为3秒     
$result = $sphinx->query("test",$index1);

#在名为“index1”的全文索引中,搜索关键字为“test”的文档;注,sphinx里一条记录称为“文档”

print_r ($result);

#显示结果
?>

运行返回的数组,不是真正的想要的结果。因为sphinx全文索引里面的信息记录的不是完整的数据,只记录被分词后的数据,所以还要根据matches中的ID去mysql的表中取数据。

 Sphinx的精髓是把全文搜索中的单词(包括中文),快速地过滤成其所在的ID,然后再用ID去mysql中准确定位数据。

 如果直接用mysql在海量的文章中全文搜索一两个单词(包括中文),是件很麻烦的事,让sphinx来做这件事就会变得so easy!

明天接着介绍sphinx的工作原理,到底sphinx记录的是什么数据,一步步地来揭开sphinx神秘的面纱!

 

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29806344/viewspace-1398271/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-08-15

  • 博文量
    45
  • 访问量
    228899