Sphinx搜索使用命令行返回与php api不同的结果

Sphinx搜索使用命令行返回与php api不同的结果,php,mysql,search,search-engine,sphinx,Php,Mysql,Search,Search Engine,Sphinx,命令行搜索(26019个文档/26019个点击) 或 PHP API(总数:1000/找到的总数:51038) 忘记找到“search.exe”。别理它。真正地算了吧。现在。我会等的 现在,结束之后,请尝试具体说明要搜索的索引(在查询函数调用中) 对于得到的每一行运行一次查询也是不好的。您应该只为所有结果发出一个SQL查询。mysql IN()函数使它变得简单 范例 Sphinx是一个更基本但功能性更强的示例,仅返回1000个结果 有一些关于提高该限制的建议,请查看他们的页面。请注意,您可以在旧

命令行搜索(26019个文档/26019个点击)

PHP API(总数:1000/找到的总数:51038)

忘记找到“search.exe”。别理它。真正地算了吧。现在。我会等的

现在,结束之后,请尝试具体说明要搜索的索引(在查询函数调用中)

对于得到的每一行运行一次查询也是不好的。您应该只为所有结果发出一个SQL查询。mysql IN()函数使它变得简单

范例


Sphinx是一个更基本但功能性更强的示例,仅返回1000个结果

有一些关于提高该限制的建议,请查看他们的页面。请注意,您可以在旧版sphinx Release中将该数字更改为您想要的任何数字,但它将返回最大1000。请回答:


除非您计划在同一页面上使用26019匹配项,否则我建议您使用分页(如果您仅显示结果)

我的查询是关于命令行和api(26019/51038)之间的结果差异。26019是正确的结果。
search.exe --config c:\sphinx\sphinx.conf keyword
search.exe --config c:\sphinx\sphinx.conf keyword -e2
//sphinx command line and php api

mysql_connect("localhost", "username", "password");
mysql_select_db("database");

require_once('sphinxapi.php');

$cl = new SphinxClient;
$cl->setServer("127.0.0.1", 9312); // NOT "localhost" under Windows 7!
$cl->setMatchMode(SPH_MATCH_EXTENDED2);
$cl->SetLimits(0, 20);

$result = $cl->Query("keyword");

if ($result['total'] > 0)
{
    echo 'Total: ' . $result['total'] . "<br />\n";
    echo 'Total Found: ' . $result['total_found'] . "<br />\n";
    echo '<table>';
    echo '<tr><td>ID</td><td>Date</td><td>Title</td><td>Content</td></tr>';

    foreach ($result['matches'] as $id => $otherStuff)
    {
        $row = mysql_fetch_array(mysql_query("select * from table where id = $id"));
        extract($row);

        echo "<tr><td>$id</td><td>$date</td><td>$title</td><td>$content</td></tr>";
    }
    echo '</table>';
}
else
{
    echo 'No results found';
}
$sql = "SELECT t1.field1, t1.field2, t1.field3, t2.field4
    FROM t_table1 AS t1
    LEFT JOIN t_table2 AS t2 ON t2.id = t1.t2_id WHERE t2.field4 LIKE 'keyword'";