首页 > PHP开发 > php中级 > PHP扩展之针对搜索引擎的扩展(二)—— Sphinx简介、安装及使用
2014
11-07

PHP扩展之针对搜索引擎的扩展(二)—— Sphinx简介、安装及使用

一、简介及安装

该扩展提供了针对Sphinx搜索客户端开发库的绑定. Sphinx是一个独立的搜索引擎系统,其目的是为其他相关程序和应用提供快速的、规模可扩展的全文搜索功能. Sphinx有着良好的设计,可以很方便的与SQL数据库结合,并使用脚本语言调用. Sphinx 以及 其客户端库 可以从 官方站点获取,中文用户也可以从Coreseek获取支持中文的版本和服务。

安装需求:需要PHP5.2.2及以上PHP版本。

安装步骤请参考:Linux下编译安装Sphinx、中文分词coreseek及PHP的sphinx扩展

安装过程中,如果 ./configure 不能正确找到 libsphinxclient 文件 (例如, 他被安装在用户自己定义的目录中),使用 ./configure --with-sphinx=$PREFIX来制定libsphinxclient的具体位置($PREFIX是libsphinxclient的安装位置)。

编译安装:

http://pecl.php.net/package/sphinx下载所需的sphinx扩展源码安装包,解压到指定目录,进入该目录。

./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx=/usr/local/libsphinxclient
make
sudo make install

二、使用实例

Example #1 基本使用范例

<?php

$s = new SphinxClient;
$s->setServer("localhost", 6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);

$result = $s->query("test");

var_dump($result);

?>

以上例程的输出类似于:

array(10) {
  ["error"]=> string(0) ""
  ["warning"]=> string(0) ""
  ["status"]=> int(0)
  ["fields"]=>
      array(3) {
        [0]=> string(7) "subject"
        [1]=> string(4) "body"
        [2]=> string(6) "author"
      }
  ["attrs"]=>
      array(0) {}
  ["matches"]=>
      array(1) {
        [3]=>
            array(2) {
              ["weight"]=> int(1)
              ["attrs"]=> array(0) {}
            }
      }
  ["total"]=> int(1)
  ["total_found"]=> int(1)
  ["time"]=> float(0)
  ["words"]=> 
      array(1) {
          ["to"]=>
              array(2) {
                  ["docs"]=>int(1)
                  ["hits"]=>int(1)
              }
      }
}

三、SphinxClient 类

SphinxClient 为 Sphinx 提供了面向对象的接口

编程技巧