1

我正在使用狮身人面像 2.1.4

我正在使用以下方法搜索狮身人面像,

第一::
在 php 中通过 PDO 使用 sphinxql 使用这个查询

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

现在,当我对安装时附带的 sphinxapi.php 做同样的事情时,排名模式似乎只像SPH_RANK_MATCHENY一样工作。通过 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 方法。我检查了几次。有什么错误还是我做错了什么?

4

1 回答 1

2

SetRankingMode 仅在您使用 SPH_MATCH_EXTENDED 时有效

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

要明确匹配模式和排名模式是两个不同的东西。不同匹配模式的概念已被贬低,因此未在 SphinxQL 中公开。

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

于 2014-02-26T11:21:30.417 回答