使用 PHP 查詢 Sphinx 的全文檢索

發表時間: 2010-11-17 11:32:12
一劃 @ 61.56.133.15

先安裝 libsphinxclient
因為之前的 Sphinx 是自己抓 source 回來 complier 的,所以直接到 source 的API目錄下的 libsphinxclient
$ cd sphinx-0.9.9/api/libsphinxclient/


先改個BUG
http://www.sphinxsearch.com/forum/view.html?id=4801


在 sphinxclient.c 的 280 行


void sock_close ( int sock );

改成


static void sock_close ( int sock );

$ ./configure --prefix=/usr/local/sphinx
$ make
$ sudo make installl
$ cd /usr/local/php5/bin
$ sudo ./pecl install sphinx
接著會問你 libsphinxclient 裝在哪,輸入 /usr/local/sphinx 再按 enter。
這樣一來,就產生了 sphinx 的動態附加元件檔 sphinx.so
再去 php.ini 加入 extension=sphinx.so 就 OK 了。


由 PHP 查詢範例



<?php
$attrtype = SPH_MATCH_ANY;
$q = "test";
$s = new SphinxClient;
$s->setServer("localhost", 9312);
$s->setMatchMode($attrtype);
$s->setMaxQueryTime(3);
if ( $s->GetLastWarning() )
print "WARNING: " . $s->GetLastWarning() . "<br/>";
$res = $s->query($q);
print_r($res)
?>;