Я делаю логический запрос, т.е. "hello | world"
. Когда я делаю этот запрос через командную строку, он дает правильные результаты, то есть документы, которые содержат оба эти термина, показаны вверху, а документы, содержащие только один из них, показаны внизу.
Однако, когда я делаю тот же запрос из php api sphinx, он дает неверные результаты. Я делаю запрос из командной строки, используя:
C: \ sphinx-1.10 \ bin \ search --config C: \ sphinx-1.10 \ sphinx.conf.in "hello | world" --limit 3
Это возвращает правильные результаты сейчас, я использую php-код:
<?php
include('/sphinx-1.10/api/sphinxapi.php');
$cl = new SphinxClient();
$cl->SetMatchMode(SPH_MATCH_BOOLEAN);
$cl->SetSortMode(SPH_SORT_RELEVANCE);
$cl->SetLimits(0,3);
$result = $cl->Query( "hello | world", 'sample' );
if ( $result === false ) {
echo "Query failed: " . $cl->GetLastError() . "<br/>";
}
else {
if ( $cl->GetLastWarning() ) {
echo "WARNING: " . $cl->GetLastWarning() . "<br/>";
}
if ( ! empty($result["matches"]) ) {
foreach ( $result["matches"] as $doc => $docinfo ) {
echo "$doc <br/>";
}
}
}
?>
Выше приведены неверные результаты.
Может кто-нибудь подсказать мне, что я делаю не так?