1

私はスフィンクス2.1.4を使用しています

次の方法でスフィンクスで検索していますが、

最初::
このクエリを使用して、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 は機能していません。何度かチェックしました。バグはありますか、それとも何か間違っていますか?

4

1 に答える 1

2

SetRankingMode は、SPH_MATCH_EXTENDED を使用する場合にのみ機能します

SphinxQL は常に拡張されたマッチ モードです - それがサポートする唯一のマッチ モードです (文書化されていない OPTION を介してマッチ モードを変更することは可能かもしれませんが、推奨されません)。

明確にするために、マッチモードとランキングモードは2つの異なるものです. 異なるマッチ モードの概念は減価償却されているため、SphinxQL では公開されていません。

本当に API を使用したい場合は、SPH_MATCH_EXTENDED に固執することをお勧めします。他のモードに惑わされないでください。

于 2014-02-26T11:21:30.417 に答える