2009-03-19 10 views
2

結果を属性の合計でソートするには、sphinxが必要です。私のようにする必要があります(行われる)スフィンクスグループ検索で属性を合計するにはどうすればよいですか?

  • グループそのIDによって結果
  • ソート私は、この属性を合計する方法を見つけることができませんつの属性

の合計によって結果。 どうすればこのことができますか?

(スフィンクスPHPのAPIを使用してイム)

答えて

3

スフィンクスは、0.9.9-rc2バージョン以降の集合関数(合計、平均、最小、最大)をサポートしています。 ドキュメントを確認してくださいwww.sphinxsearch.com/docs/current.html

+0

私はすべてのスフィンクスのドキュメントを読んでいましたが、SUMを実行するためにPHP APIを使用する方法の一例は見つかりませんでした。あなたのお見積もりは、sphinxQLセクションから来ています – Ant

0

私の知る限り、これは現在のSphinxのバージョンでは不可能です。グループ・バイ・ファンクションは、属性(つまり、アイテムのグループに対する別個の属性)、そのグループ内のカウント、およびグループの「トップ」アイテムによってグループを戻すように設計されています。

あなたの最善の策は、スフィンクスの外であなたの合計をすることです。あなたは属性別にあなたのグループのSphinx検索ソートを実行し、PHPでこれらの項目をループしていくことで、合計していくことができます。このアプローチは非常に効率的ではない可能性があります。そのため、サーバーの負荷を軽減するために定期的にキャッシュする必要があります。

1

前の回答を返信すると、それはSphinxクエリ内で行うことができません。 the expression syntaxはソートである程度の計算が可能ですが、集計関数はありません。その合計値を属性として格納しない限り(これはオプションでもかまいません)、レコードごとに別々のSQLクエリでなければなりません。

関連する問題