[英]SPHINX search php query, how to display results from an array?
我開始學習獅身人面像搜索php api
運行此查詢后
<?php
include('sphinxapi.php');
$cl = new SphinxClient();
$cl->SetServer( "192.168.0.100", 9312 );
$cl->SetMatchMode( SPH_MATCH_ANY );
$result = $cl->Query( "mimmi", "searchtest" );
if ( $result === false ) {
echo "Query failed: " . $cl->GetLastError() . ".\n";
}
else {
if ( $cl->GetLastWarning() ) {
echo "WARNING: " . $cl->GetLastWarning() . "
";
}
if ( ! empty($result["matches"]) ) {
foreach ( $result["matches"] as $doc => $docinfo ) {
echo "$doc\n";
}
print_r( $result );
}
}
exit;
?>
如何正確顯示結果,它會顯示這樣的輸出
2183 3262 5256 7812 838 1475 1701 6184 1816 Array ( [error] => [warning] => [status] => 0 [fields] => Array ( [0] => namn [1] => title [2] => identification_text [3] => id [4] => namn [5] => title [6] => identification_text [7] => description ) [attrs] => Array ( ) [matches] => Array ( [2183] => Array ( [weight] => 6 [attrs] => Array ( ) ) [3262] => Array ( [weight] => 6 [attrs] => Array ( ) ) [5256] => Array ( [weight] => 6 [attrs] => Array ( ) ) [7812] => Array ( [weight] => 6 [attrs] => Array ( ) ) [838] => Array ( [weight] => 4 [attrs] => Array ( ) ) [1475] => Array ( [weight] => 4 [attrs] => Array ( ) ) [1701] => Array ( [weight] => 4 [attrs] => Array ( ) ) [6184] => Array ( [weight] => 4 [attrs] => Array ( ) ) [1816] => Array ( [weight] => 2 [attrs] => Array ( ) ) ) [total] => 9 [total_found] => 9 [time] => 0.001 [words] => Array ( [mimmi] => Array ( [docs] => 9 [hits] => 46 ) ) )
我不知道該怎么做,我如何顯示結果。
此時,您希望獲取從sphinx返回的ID並使用它們查詢您的數據庫。
<?php
$IDs = implode(",",array_keys($result["matches"]));
$sql = "SELECT * FROM `tbl` WHERE `id` IN ($IDs) ORDER BY FIELD(`id`,$IDs)";
?>
您在/etc/sphinxsearch/sphinx.conf中聲明的字段將在$ result ['matches']中可用:
sql_field_string = my_field # will be both indexed and stored
這樣,就不需要查詢數據庫了
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.