0

非常にうまく動作しているdjangoサイトでSphinx検索を行っています。あらゆる種類のクエリに対して優れた一致を見つけます。新しい結果のランキングを上げることができるようにしたいと思います。多くの場合、何年も前の記事が新品の記事よりも上位にランク付けされます。古い記事の方が検索ワードが多いので関連性は高いですが、新しい記事はやはり関連性が高いので、上位に表示してもらいたいです。

重み付けに関する Sphinx のドキュメントを読もうとしましたが、信じられないほど紛らわしく、よくわからない用語でいっぱいです。検索をほとんどそのままにしておきたいのですが、最近の pub_dates を使用して結果のランキングを少し上げたいだけです。

4

3 に答える 3

4

SPH_SORT_EXPR を使用すると、次のような算術式による並べ替えを変更できます。

$cl->SetSortMode ( SPH_SORT_EXPR, "@weight + IF(pub_date > strtotime('2011-01-01), 50, 0) );

この式では、2011 年 1 月 1 日以降に公開された記事の重みが +50 増加します。

于 2011-02-12T12:20:59.817 に答える
1

$cl->SetSortMode ( SPH_SORT_EXPR, "@id" ); これによりランプが得られます。最近のものほど重みが増します。@id * 2 を実行して効果を 2 倍にするか、/ 2 を実行して弱めます。

絶対値を使用すると結果を予測するのが難しいため、これは機能しません。たとえば、それぞれ ID 100 と ID 99000 の 2 つの投稿がありますが、ID 100 の重みが非常に高く、ID 99000 の重みが非常に悪い場合、ID 99000 が上がります。

于 2011-02-17T09:36:41.773 に答える
0

$cl->SetSortMode ( SPH_SORT_EXPR, "@id" );これはあなたにランプを与えます-より最近、より多くの重み。@id * 2効果を2倍にするか/ 2、弱めるだけです。

于 2011-02-13T16:53:05.483 に答える