[英]How to show sphinx search result with php?
我在本地主機(沼澤)上安裝了獅身人面像搜索。 我想在一個簡單的html表中顯示結果。 我試圖用php連接到獅身人面像搜索,我認為它做到了,但是當我打印結果時它是0 ....但是那不是真的。 我不太了解在查詢部分是否需要輸入要搜索的詞? 我嘗試在命令窗口中進行搜索,但是效果很好,只是我不知道如何在網頁上顯示它。 而且我想使用mysql。 所以我的PHP看起來像這樣:
require ( "sphinx/api/sphinxapi.php" );
$s = new SphinxClient;
$s->setServer("localhost", 9306);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);
$result = $s->query("test");
var_dump($result);
這是我的迷你conf文件:
source src1
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_query_info = SELECT * FROM documents WHERE id=$id
}
index test1
{
source = src1
path = C:/wamp/www/sphinx/data/test1
docinfo = extern
charset_type = sbcs
}
indexer
{
mem_limit = 32M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = C:/wamp/www/sphinx/log/searchd.log
query_log = C:/wamp/www/sphinx/log/query.log
read_timeout = 5
max_children = 30
pid_file = C:/wamp/www/sphinx/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = C:/wamp/www/sphinx/data
}
您的連接和查詢可能如下所示:
$link = mysql_connect ( '127.0.0.1:9306', '', '' );
$db_selected = mysql_select_db ( 'main', $link );
然后通常是mysql查詢(就像通常那樣)
$sql = "select * from main WHERE MATCH('$queryterm') order by date desc LIMIT 0,50";
$result = mysql_query ( $sql );
或者,您可以根據需要檢索一些元信息(有關此元數據,請參見Sphinx文檔)
$metainfo = mysql_query('SHOW META');
while ( $meta = mysql_fetch_array ( $metainfo ) ) {
$srchmeta[]=$meta;
//or whatever you want here
}
$ s-> setServer(“ localhost”,9306);
多數民眾贊成在mysql協議端口-sphinxQL。
在您的配置文件中,您可以使用sphinxAPI協議在9312上監聽sphinx。 因此,更改您的setServer行以使用9312
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.