狮身人面像排名模式不起作用

时间:2014-02-26 10:20:47

标签: php sphinx sphinxql

我正在使用sphinx 2.1.4

我正在用sphinx搜索以下方法,

首先::
使用此查询在php中通过PDO使用sphinxql

SELECT * FROM $indexes WHERE MATCH(:match)  LIMIT 0,10 OPTION ranker=bm25

现在,当我使用sphinxapi.php进行同样的安装时,排名模式似乎只能像 SPH_RANK_MATCHANY 一样工作。通过api更改排名模式不起作用,它会产生相同的结果。

这是api实现::

$conn = new SphinxClient();
$conn->SetServer("192.168.x.x", 9312);

$conn->SetMatchMode(SPH_MATCH_ANY);
$conn->SetRankingMode(SPH_RANK_BM25);
$conn->SetArrayResult(true);

$rows = $conn->Query('query', 'test1');

查询方法似乎有效,但不是api。我检了几次。有没有错误或者我做错了什么?

1 个答案:

答案 0 :(得分:2)

SetRankingMode仅在您使用SPH_MATCH_EXTENDED

时有效

SphinxQL是始终扩展匹配模式 - 它是唯一支持的模式(可能可以通过N未记录的OPTION更改匹配模式,但不推荐)

要清楚匹配模式和排名模式是两回事。不同匹配模式的概念已经过折旧,因此未在SphinxQL中公开。

如果您真的想使用API​​,建议您坚持使用SPH_MATCH_EXTENDED - 不要被其他模式诱惑。